当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy Rotation.from_mrp用法及代码示例


本文简要介绍 python 语言中 scipy.spatial.transform.Rotation.from_mrp 的用法。

用法:

classmethod  Rotation.from_mrp(cls, mrp)#

从修改后的罗 Delhi 格斯参数 (MRP) 进行初始化。

MRP 是到旋转轴的 3 维向量 co-directional,其大小等于 tan(theta / 4) ,其中 theta 是旋转角度(以弧度为单位)[1]。

MRP 具有 360 度的单一性,可以通过确保旋转角度不超过 180 度来避免这种情况,即在超过 180 度时切换旋转方向。

参数

mrp 数组,形状 (N, 3) 或 (3,)

单个向量或向量堆栈,其中 mrp[i] 给出第 i 个 MRP 集。

返回

rotation Rotation 实例

包含由输入 MRP 表示的旋转的对象。

注意

参考

[1]

Shuster, M. D.“态度表征调查”,《航天科学杂志》,卷。 41, No.4, 1993, pp. 475-476

例子

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

初始化单个旋转:

>>> r = R.from_mrp([0, 0, 1])
>>> r.as_euler('xyz', degrees=True)
array([0.        , 0.        , 180.      ])
>>> r.as_euler('xyz').shape
(3,)

在一个对象中初始化多个旋转:

>>> r = R.from_mrp([
... [0, 0, 1],
... [1, 0, 0]])
>>> r.as_euler('xyz', degrees=True)
array([[0.        , 0.        , 180.      ],
       [180.0     , 0.        , 0.        ]])
>>> r.as_euler('xyz').shape
(2, 3)

也可以有一个单一旋转的堆栈:

>>> r = R.from_mrp([[0, 0, np.pi/2]])
>>> r.as_euler('xyz').shape
(1, 3)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.spatial.transform.Rotation.from_mrp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。