Beispiel #1
0
    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)
Beispiel #2
0
 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)