Example #1
0
def rectangle(l):
    p = Point(np.random.uniform(low=-l/2, high=l/2), np.random.uniform(low=0, high=l/2))
    w = np.random.uniform(low=0, high=l/3)
    h = np.random.uniform(low=0, high=l/6)
    a = np.random.uniform(low=-np.pi/4, high=np.pi/4)
    p1 = p.translation(w, h).rotation(a, p)
    p2 = p.translation(w, -h).rotation(a, p)
    p3 = p.translation(-w, -h).rotation(a, p)
    p4 = p.translation(-w, h).rotation(a, p)
    return Polyline([Line(p1, p2), Line(p2, p3), Line(p3, p4), Line(p4, p1)])
Example #2
0
 def create_layer_points(self, point_distance, layer_distance, layer_size,
                         layer_depth):
     layer_points = []
     p = Point(layer_depth * layer_distance,
               float(layer_size - 1) / 2 * point_distance)
     for j in range(layer_size):
         layer_points.append(p)
         p = p.translation(0, -point_distance)
     return layer_points
Example #3
0
def create_arm(angles, lengths):
    alpha = np.pi/2
    A = Point(0, 0)
    lines = []
    for i in range(len(angles)):
         B = A.translation(lengths[i], 0)
         alpha += angles[i]
         B = B.rotation(alpha, A)
         lines.append(Line(A, B))
         A = B
    return Polyline(lines)