LINES.append({
            'start': x2,
            'end': x3,
            'color': (0, 0, 0),
            'name': "{}.sock".format(key)
        })

        LINES.append({
            'start': x3,
            'end': x4,
            'color': (255, 255, 255),
            'name': "{}.extra".format(key)
        })

    result = NUMERICAL.pca_numpy(points)

    origin = result[0][0]
    xaxis = normalize_vector(result[1][0])
    yaxis = normalize_vector(result[1][1])
    zaxis = normalize_vector(result[1][2])
    frame = Frame(origin, xaxis, yaxis)

    if yaxis[2] > 0:
        offset = scale_vector(zaxis, -0.050)
    else:
        offset = scale_vector(zaxis, +0.050)

    points_xy = [
        frame.represent_point_in_local_coordinates(point) for point in points
    ]
Exemplo n.º 2
0
cloud1 = pointcloud(30, (0, 10), (0, 3), (0, 5))
bbox1 = bounding_box(cloud1)

Rz = Rotation.from_axis_and_angle([0.0, 0.0, 1.0], radians(60))
Ry = Rotation.from_axis_and_angle([0.0, 1.0, 0.0], radians(20))
Rx = Rotation.from_axis_and_angle([1.0, 0.0, 0.0], radians(10))

T = Translation([2.0, 5.0, 8.0])

R = T * Rz * Ry * Rx

cloud2 = transform_points(cloud1, R)
bbox2 = transform_points(bbox1, R)

mean, vectors, values = numerical.pca_numpy(cloud2)

origin = mean
xaxis = vectors[0]
yaxis = vectors[1]

frame = Frame(origin, xaxis, yaxis)
world = Frame.worldXY()

X = Transformation.from_frame_to_frame(frame, world)

cloud3 = transform_points(cloud2, X)
bbox3 = bounding_box(cloud3)

bbox4 = transform_points(bbox3, X.inverse())
            'name': "{}.turn-buckle".format(key)
        })
        LINES.append({
            'start': x2,
            'end': x3,
            'color': (0, 0, 0),
            'name': "{}.sock".format(key)
        })
        LINES.append({
            'start': x3,
            'end': x4,
            'color': (255, 255, 255),
            'name': "{}.extra".format(key)
        })

    result = numerical.pca_numpy(points)

    origin = result[0][0]
    xaxis = normalize_vector(result[1][0])
    yaxis = normalize_vector(result[1][1])
    zaxis = normalize_vector(result[1][2])
    frame = Frame(origin, xaxis, yaxis)

    if yaxis[2] > 0:
        offset = scale_vector(zaxis, -0.05)
    else:
        offset = scale_vector(zaxis, +0.05)

    points_xy = [
        frame.represent_point_in_local_coordinates(point) for point in points
    ]