Rotation

class compas.geometry.Rotation(matrix=None, check=True)[source]

Bases: Transformation

Class representing a rotation transformation.

The class contains methods for converting rotation matrices to axis-angle representations, Euler angles, quaternion and basis vectors.

Parameters

matrix (list[list[float]], optional) – A 4x4 matrix (or similar) representing a rotation.

Attributes
  • quaternion (Quaternion, read-only) – The quaternion from the rotation.

  • axis_and_angle (tuple[Vector, float], read-only) – The axis and the angle of the rotation.

  • axis_angle_vector (Vector, read-only) – The axis-angle vector of the rotation.

  • basis_vectors (tuple[Vector, Vector], read-only) – The basis vectors of the rotation.

Raises

ValueError – If the default constructor is used, and the provided transformation matrix is not a rotation.

Examples

>>> from compas.geometry import Frame
>>> 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)
True

Methods

euler_angles

Returns Euler angles from the rotation according to specified axis sequence and rotation type.

from_axis_and_angle

Construct a rotation transformation from a rotation axis and an angle and an optional point of rotation.

from_axis_angle_vector

Construct a rotation transformation from an axis-angle vector.

from_basis_vectors

Construct a rotation transformation from basis vectors (= orthonormal vectors).

from_euler_angles

Construct a rotation transformation from Euler angles.

from_frame

Construct a rotation transformationn from world XY to frame.

from_quaternion

Construct a rotation transformation` from quaternion coefficients.

Inherited Methods

ToString

Converts the instance to a string.

concatenate

Concatenate another transformation to this transformation.

concatenated

Concatenate two transformations into one Transformation.

copy

Returns a copy of the transformation.

decomposed

Decompose the Transformation into its components.

from_change_of_basis

Construct a change of basis transformation between two frames.

from_data

Construct an object of this type from the provided data.

from_frame_to_frame

Construct a transformation between two frames.

from_json

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object from serialized data contained in a JSON string.

from_list

Creates a transformation from a list of 16 numbers.

from_matrix

Creates a transformation from a list[list[float]] object.

inverse

Returns the inverse transformation.

invert

Invert this transformation.

inverted

Returns the inverse transformation.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

to_data

Convert an object to its native data representation.

to_json

Serialize the data representation of an object to a JSON file.

to_jsonstring

Serialize the data representation of an object to a JSON string.

transpose

Transpose the matrix of this transformation.

transposed

Create a transposed copy of this transformation.

validate_data

Validate the object's data against its data schema.

validate_json

Validate the object's data against its json schema.