scipy.spatial.transform.Rotation.as_quat

Rotation.as_quat()

表示为四元数。

三维旋转可以用单位范数四元数表示 [1]. 从四元数到旋转的映射是二对一的,即四元数 q-q ,在哪里 -q 简单地反转每个分量的符号,代表相同的空间旋转。返回值为最后一个标量(x,y,z,w)格式。

退货
quatnumpy.ndarray 、形状(4,)或(N,4)Numpy.ndarray,形状(4,)或(N,4)

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

参考文献

1

https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

示例

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

表示单次旋转:

>>> r = R.from_matrix([[0, -1, 0],
...                    [1, 0, 0],
...                    [0, 0, 1]])
>>> r.as_quat()
array([0.        , 0.        , 0.70710678, 0.70710678])
>>> r.as_quat().shape
(4,)

表示单次旋转的堆栈:

>>> r = R.from_quat([[0, 0, 0, 1]])
>>> r.as_quat().shape
(1, 4)

表示单个对象中的多个旋转:

>>> r = R.from_rotvec([[np.pi, 0, 0], [0, 0, np.pi/2]])
>>> r.as_quat().shape
(2, 4)