sknano.core.math.transformation_matrix¶
-
sknano.core.math.
transformation_matrix
(angle=None, axis=None, anchor_point=None, rot_point=None, from_vector=None, to_vector=None, degrees=False, verbose=False, **kwargs)[source][source]¶ Generate an \((n+1)\times(n+1)\) transformation matrix for an affine transformation in \(n\) dimensions.
New in version 0.3.0.
Parameters: angle : float
Rotation angle in radians. If degrees is True,
angle
will be converted to radians from degrees. The sense of the rotation is defined by the right hand rule: If your right-hand’s thumb points along the axis, then your fingers wrap around the axis in the positive sense of the rotation angle.axis : {None, array_like, str}, optional
An \(n\)-element array_like sequence defining the \(n\) components of the rotation axis or the string x, y, or z representing the \(x, y, z\) axes of a Cartesian coordinate system in 3D with unit vectors \(\mathbf{v}_x=\mathbf{\hat{x}}\), \(\mathbf{v}_y=\mathbf{\hat{y}}\), and \(\mathbf{v}_z=\mathbf{\hat{z}}\), respectively.
anchor_point : {None, array_like}, optional
An \(n\)-element list or ndarray or
Point
defining the origin of the rotation axis.If anchor_point is not None and axis is a
Vector
instance, then the origin of the vector defined byVector.p0
will be changed to anchor_point.If anchor_point is None, then it defaults to an \(n\)-element array of zeros.
degrees : bool, optional
If True, convert
angle
from degrees to radians.Returns: Tmat : ndarray
\(n+1\times n+1\) transformation matrix for an affine transform in \(n\) dimensions.
If axis is None and anchor_point is None, then Tmat will be a \(2D\) rotation matrix \(R(\theta)\) that rotates \(2D\) vectors counterclockwise by
angle
\(\theta\).If axis is None and anchor_point is a 2-element sequence, then Rmat will be a \(2D\) rotation matrix \(R(\theta)\) about the \(2D\)
Point
anchor_point byangle
\(\theta\).If axis is not None and anchor_point is None, then Rmat will be a rotation matrix that gives a rotation around the direction of the vector axis.