示例#1
0
    def __init__(self, name, n, length, edge_names=True, all_edges=None):
        pts = []
        lens = []
        radius = (length / (2 * np.sin(np.pi / n)))
        dt = (2 * np.pi / n)
        for i in range(n):
            pts.append((radius * np.cos(i * dt), radius * np.sin(i * dt)))
            lens.append(length)

        Face.__init__(self, name, pts, lens, edge_names=edge_names, allEdges=all_edges)
示例#2
0
 def __init__(self, name, s, edge_names=True, all_edges=None, recenter=True):
   angle1 = np.pi*36/180
   angle2 = np.pi*54/180
   angle3 = np.pi*18/180
   pt1 = (0,0)
   pt2 = (s*np.cos(angle1), s*np.sin(angle1))
   pt3 = (2*s*np.cos(angle1), 0)
   pt4 = (2*s*np.cos(angle1)*np.sin(angle2), -1*2*s*np.cos(angle1)*np.cos(angle2))
   pt5 = (s*np.sin(angle3), -1*s*np.cos(angle3))
   Face.__init__(self, name, (pt1, pt2, pt3, pt4, pt5), [s, s, s, s, s], edge_names=edge_names, all_edges=all_edges,
                 recenter=recenter)
示例#3
0
    def transform(self, scale=1, angle=0, origin=(0, 0)):
        r = np.array([[np.cos(angle), -np.sin(angle)],
                      [np.sin(angle), np.cos(angle)]]) * scale
        o = np.array([origin] * len(self.pts_2D))

        pts = np.transpose(np.dot(r, np.transpose(np.array(self.pts_2D)))) + o
        self.pts_2D = [tuple(x) for x in np.rows(pts)]
        for (i, d) in enumerate(self.decorations):
            o = np.array([origin] * len(d[0]))
            pts = np.transpose(np.dot(r, np.transpose(np.array(d[0])))) + o
            self.decorations[i] = ([tuple(x) for x in np.rows(pts)], d[1])
示例#4
0
def rotate_z(angle):
    r = np.array([[np.cos(angle), -np.sin(angle), 0, 0],
                  [np.sin(angle), np.cos(angle), 0, 0], [0, 0, 1, 0],
                  [0, 0, 0, 1]])
    return r