orient_points

compas.geometry.orient_points(points, reference_plane, target_plane)[source]

Orient points from one plane to another.

Parameters:
pointssequence[[float, float, float] | compas.geometry.Point]

XYZ coordinates of the points.

reference_plane[point, vector]

Base point and normal defining a reference plane.

target_plane[point, vector]

Base point and normal defining a target plane.

Returns:
list[[float, float, float]]

XYZ coordinates of the oriented points.

Notes

This function is useful to orient a planar problem in the xy-plane to simplify the calculation (see example).

Examples

>>> from compas.geometry import Point
>>> from compas.geometry import orient_points
>>> from compas.geometry import intersection_segment_segment_xy
>>> refplane = ([0.57735, 0.57735, 0.57735], [1.0, 1.0, 1.0])
>>> tarplane = ([0.0, 0.0, 0.0], [0.0, 0.0, 1.0])
>>> points = [            [0.288675, 0.288675, 1.1547],            [0.866025, 0.866025, 0.0],            [1.077350, 0.077350, 0.57735],            [0.077350, 1.077350, 0.57735]        ]
>>> points = orient_points(points, refplane, tarplane)
>>> ab = points[0], points[1]
>>> cd = points[2], points[3]
>>> point = intersection_segment_segment_xy(ab, cd)
>>> points = orient_points([point], tarplane, refplane)
>>> print(Point(*points[0]))
Point(x=0.577, y=0.577, z=0.577)