scipy.spatial.transform.Rotation.

as_matrix#

Rotation.as_matrix(self)#

表示为旋转矩阵。

3D 旋转可以使用旋转矩阵表示,旋转矩阵是 3x3 实数正交矩阵,其行列式等于 +1 [1].

返回值:
matrixndarray,形状为 (3, 3) 或 (N, 3, 3)

形状取决于用于初始化的输入的形状。

注释

此函数以前称为 as_dcm。

在版本 1.4.0 中添加。

参考资料

示例

>>> from scipy.spatial.transform import Rotation as R
>>> import numpy as np

表示单个旋转

>>> r = R.from_rotvec([0, 0, np.pi/2])
>>> r.as_matrix()
array([[ 2.22044605e-16, -1.00000000e+00,  0.00000000e+00],
       [ 1.00000000e+00,  2.22044605e-16,  0.00000000e+00],
       [ 0.00000000e+00,  0.00000000e+00,  1.00000000e+00]])
>>> r.as_matrix().shape
(3, 3)

用单个旋转表示一个堆栈

>>> r = R.from_quat([[1, 1, 0, 0]])
>>> r.as_matrix()
array([[[ 0.,  1.,  0.],
        [ 1.,  0.,  0.],
        [ 0.,  0., -1.]]])
>>> r.as_matrix().shape
(1, 3, 3)

表示多个旋转

>>> r = R.from_rotvec([[np.pi/2, 0, 0], [0, 0, np.pi/2]])
>>> r.as_matrix()
array([[[ 1.00000000e+00,  0.00000000e+00,  0.00000000e+00],
        [ 0.00000000e+00,  2.22044605e-16, -1.00000000e+00],
        [ 0.00000000e+00,  1.00000000e+00,  2.22044605e-16]],
       [[ 2.22044605e-16, -1.00000000e+00,  0.00000000e+00],
        [ 1.00000000e+00,  2.22044605e-16,  0.00000000e+00],
        [ 0.00000000e+00,  0.00000000e+00,  1.00000000e+00]]])
>>> r.as_matrix().shape
(2, 3, 3)