Rotation.from_change_of_basis

classmethod Rotation.from_change_of_basis(frame_from, frame_to)[source]

Construct a change of basis transformation between two frames.

A basis change is essentially a remapping of geometry from one coordinate system to another.

Parameters:
frame_fromcompas.geometry.Frame

A frame defining the original Cartesian coordinate system.

frame_tocompas.geometry.Frame

A frame defining the targeted Cartesian coordinate system.

Returns:
compas.geometry.Transformation

The transformation representing a change of basis.

Examples

>>> from compas.geometry import Point, Frame
>>> f1 = Frame([2, 2, 2], [0.12, 0.58, 0.81], [-0.80, 0.53, -0.26])
>>> f2 = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15])
>>> T = Transformation.from_change_of_basis(f1, f2)
>>> p_f1 = Point(1, 1, 1)  # point in f1
>>> p_f1.transformed(T)  # point represented in f2
Point(1.395, 0.955, 1.934)
>>> Frame.local_to_local_coordinates(f1, f2, p_f1)
Point(1.395, 0.955, 1.934)