Exemplo n.º 1
0
    def getSides(self):
        points = []
        for zAngle in range(self.RESOLUTION):
            for yAngle in range(self.RESOLUTION):
                point = util3D.multiAxisRotation((self.radius, 0, 0), (0, math.radians(yAngle * 360 / self.RESOLUTION), math.radians(zAngle * 360 / self.RESOLUTION)))
                point = util3D.multiAxisRotation(point, self.angles)
                point = self.addLocation(point)
                point = util3D.multiAxisRotation(point, self.perspective.angles)
                point = self.addFocusPoint(point)
                points.append(point)

        sides = []
        for j in range(self.RESOLUTION - 1):
            for i in range(self.RESOLUTION - 1):
                side = []
                side.append(points[i + j * self.RESOLUTION])
                side.append(points[i + j * self.RESOLUTION + 1])
                side.append(points[i + (j + 1) * self.RESOLUTION + 1])
                side.append(points[i + (j + 1) * self.RESOLUTION])
                sides.append(side)

        side = [] #a side is missed by the side generation algorithm
        side.append(points[self.RESOLUTION + (self.RESOLUTION - 2) * self.RESOLUTION - self.RESOLUTION * (int(self.RESOLUTION / 2 - 1)) - 1])
        side.append(points[self.RESOLUTION + (self.RESOLUTION - 3) * self.RESOLUTION - self.RESOLUTION * (int(self.RESOLUTION / 2 - 1))])
        side.append(points[self.RESOLUTION + (self.RESOLUTION - 2) * self.RESOLUTION - self.RESOLUTION * (int(self.RESOLUTION / 2 - 1))])
        side.append(points[self.RESOLUTION + (self.RESOLUTION - 1) * self.RESOLUTION - self.RESOLUTION * (int(self.RESOLUTION / 2 - 1)) - 1])
        sides.append(side)

        polygons = []
        for side in sides:
            polygons.append(Polygon(side, self.color))

        return polygons
Exemplo n.º 2
0
    def getSides(self):
        point1 = util3D.multiAxisRotation(self.getRelPoint(1), self.angles)
        point2 = util3D.multiAxisRotation(self.getRelPoint(2), self.angles)
        point3 = util3D.multiAxisRotation(self.getRelPoint(3), self.angles)
        point4 = util3D.multiAxisRotation(self.getRelPoint(4), self.angles)
        point5 = util3D.multiAxisRotation(self.getRelPoint(5), self.angles)

        point1 = self.addLocation(point1)
        point2 = self.addLocation(point2)
        point3 = self.addLocation(point3)
        point4 = self.addLocation(point4)
        point5 = self.addLocation(point5)

        point1 = util3D.multiAxisRotation(point1, self.perspective.angles)
        point2 = util3D.multiAxisRotation(point2, self.perspective.angles)
        point3 = util3D.multiAxisRotation(point3, self.perspective.angles)
        point4 = util3D.multiAxisRotation(point4, self.perspective.angles)
        point5 = util3D.multiAxisRotation(point5, self.perspective.angles)

        point1 = self.addFocusPoint(point1)
        point2 = self.addFocusPoint(point2)
        point3 = self.addFocusPoint(point3)
        point4 = self.addFocusPoint(point4)
        point5 = self.addFocusPoint(point5)

        side1 = [point1, point2, point3, point4]
        side2 = [point1, point2, point5]
        side3 = [point2, point3, point5]
        side4 = [point3, point4, point5]
        side5 = [point4, point1, point5]
        sides = [Polygon(side1, self.color), Polygon(side2, self.color), Polygon(side3, self.color),
                 Polygon(side4, self.color), Polygon(side5, self.color)]
        return sides