from cs1graphics import *

class Star(Polygon):
  def __init__(self, numRays=5, outerRadius=10, innerRatio=.5, center=Point(0,0)):
    Polygon.__init__(self)                    # call the parent constructor
    top = Point(0, -outerRadius)              # top point is directly above the origin
    angle = 180.0 / numRays
    
    for i in range(numRays):
      self.addPoint(top ^ (angle * (2 * i)))                   # outer point
      self.addPoint(innerRatio * top ^ (angle * (2 * i + 1)))  # inner point

#    self.adjustReference(0, outerRadius)      # move reference from top point to center
    self.move(center.getX(), center.getY())   # re-center entire star
    self._innerRatio = innerRatio             # record as an attribute

  def setInnerRatio(self, newRatio):
    factor = newRatio / self._innerRatio
    self._innerRatio = newRatio
    for i in range(1, self.getNumberOfPoints(), 2):            # inner points only
      self.setPoint(factor * self.getPoint(i), i)
