Rotation
-
class
compas.geometry.Rotation(matrix=None)[source] Bases:
compas.geometry.transformations.transformation.TransformationCreate a rotation transformation.
The class contains methods for converting rotation matrices to axis-angle representations, Euler angles, quaternion and basis vectors.
- Parameters
matrix (4x4 matrix-like, optional) – A 4x4 matrix (or similar) representing a rotation.
- Raises
ValueError – If the default constructor is used, and the provided transformation matrix is not a rotation.
Examples
>>> f1 = Frame([0, 0, 0], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15]) >>> R = Rotation.from_frame(f1) >>> args = False, 'xyz' >>> alpha, beta, gamma = R.euler_angles(*args) >>> xaxis, yaxis, zaxis = [1, 0, 0], [0, 1, 0], [0, 0, 1] >>> Rx = Rotation.from_axis_and_angle(xaxis, alpha) >>> Ry = Rotation.from_axis_and_angle(yaxis, beta) >>> Rz = Rotation.from_axis_and_angle(zaxis, gamma) >>> f2 = Frame.worldXY() >>> f1 == f2.transformed(Rx * Ry * Rz) TrueMethods
__init__([matrix])Construct a transformation from a 4x4 transformation matrix.
concatenate(other)Concatenate another transformation to this transformation.
concatenated(other)Concatenate two transformations into one
Transformation.copy()Returns a copy of the transformation.
Decompose the
Transformationinto itsScale,Shear,Rotation,TranslationandProjectioncomponents.euler_angles([static, axes])Returns Euler angles from the
Rotationaccording to specified axis sequence and rotation type.from_axis_and_angle(axis, angle[, point])Calculates a
Rotationfrom a rotation axis and an angle and an optional point of rotation.from_axis_angle_vector(axis_angle_vector[, …])Calculates a
Rotationfrom an axis-angle vector.from_basis_vectors(xaxis, yaxis)Creates a
Rotationfrom basis vectors (= orthonormal vectors).from_change_of_basis(frame_from, frame_to)Computes a change of basis transformation between two frames.
from_data(data)Creates a
Transformationfrom a data dict.from_euler_angles(euler_angles[, static, axes])Calculates a
Rotationfrom Euler angles.from_frame(frame)Computes the rotational transformation from world XY to frame.
from_frame_to_frame(frame_from, frame_to)Computes a transformation between two frames.
from_list(numbers)Creates a
Transformationfrom a list of 16 numbers.from_matrix(matrix)Creates a
Transformationfrom a 4x4 matrix-like object.from_quaternion(quaternion)Calculates a
Rotationfrom quaternion coefficients.inverse()Returns the inverse transformation.
invert()Invert this transformation.
inverted()Returns the inverse transformation.
to_data()Convert a
Transformationobject to a data dict.Transpose the matrix of this transformation.
Create a transposed copy of this transformation.