compas.geometry.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
>>> 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) TrueMethods
concatenate(other)Concatenate another transformation to this transformation.
concatenated(other)Concatenate two transformations into one
Transformation.copy()Returns a copy of the transformation.
decomposed()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_json(filepath)Construct an object from serialized data contained in a JSON file.
from_jsonstring(string)Construct an object from serialized data contained in a JSON string.
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.to_json(filepath[, pretty])Serialize the data representation of an object to a JSON file.
to_jsonstring([pretty])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 (self.DATASCHEMA).
validate_json()Validate the object’s data against its json schema (self.JSONSCHEMA).
Attributes
DATASCHEMAThe schema of the data of this object.
JSONSCHEMAThe schema of the JSON representation of the data of this object.
axis_and_angleReturns the axis and the angle of the
Rotation.axis_angle_vectorReturns the axis-angle vector of the
Rotation.basis_vectorsReturns the basis vectors of the
Rotation.dataReturn a
Transformationobject’s to a data dict.determinantThe determinant of the matrix of the transformation.
dtypeThe type of the object in the form of a “2-level” import and a class name.
guidThe globally unique identifier of the object.
listFlattens the 4x4 transformation matrix into a list of 16 numbers.
nameThe name of the object.
projectionThe projection component of the transformation matrix.
quaternionReturns the Quaternion from the
Rotation.rotationThe rotation component of the transformation matrix.
scaleThe scale component of the transformation matrix.
shearThe shear component of the transformation matrix.
translationThe translation component of the transformation matrix.
translation_vector