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 ]
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 ]