def __init__(self, x, y, sides, length, color=None): assert sides >= 3, "Number of sides must be greater than or equal to 3" assert length > 0, "Length of sides must be greater than 0 " self._vertices = [] self._sides = sides self._side_length = length self.side_angle = (2 * PI) / self.sides self.radius = self.side_length * sin(.5 * (PI - self.side_angle)) / \ sin(self.side_angle) for i in range(self.sides): self.vertices.append((int(round(x + self.radius * cos( self.side_angle * i))), int(round(y + self.radius * sin(self.side_angle * i))))) (xs, ys) = zip(*self.vertices) super(RegPolygon, self).__init__(xs, ys, len(self.vertices), color=color)
def _get_sideLength(self, l): assert l > 0, "Length of sides must be greater than 0" self._sideLength = l self.radius = self._sideLength * sin(0.5 * (PI - self.sideAngle)) / sin(self.sideAngle)