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


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


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

用法:

classmethod  Rotation.from_euler(cls, seq, angles, degrees=False)#

从欧拉角初始化。

3-D 中的旋转可以由围绕一系列轴的 3 次旋转序列来表示。理论上,跨越 3-D 欧几里得空间的任何三个轴都足够了。在实践中,选择旋转轴作为基向量。

这三个旋转可以在全局参考系(外部)中,也可以在以身体为中心的参考系(内部)中,该参考系连接到旋转下的对象并随其移动 [1]。

参数

seq string

指定旋转轴的顺序。最多 3 个字符属于集合 {‘X’、‘Y’、‘Z’} 用于内部旋转,或 {‘x’, ‘y’, ‘z’} 用于外部旋转。外部和内部旋转不能在一个函数调用中混合使用。

angles float 或 数组,形状 (N,) 或 (N, [1 or 2 or 3])

以弧度(度为假)或度(度为真)指定的欧拉角。对于单个字符序列,角度可以是:

  • 单个值

  • 形状为 (N,) 的 数组,其中每个角度 [i] 对应于单个旋转

  • 形状为 (N, 1) 的 数组,其中每个角度[i, 0] 对应于单个旋转

对于 2 和 3 字符宽的序列,角度可以是:

  • 数组 形状为 (W,) 其中 W 是 seq 的宽度,对应于 W 轴的单次旋转

  • 形状为 (N, W) 的 数组,其中每个角度 [i] 对应于说明单个旋转的欧拉角序列

degrees 布尔型,可选

如果为真,则假定给定角度以度为单位。默认为假。

返回

rotation Rotation 实例

包含以给定角度围绕给定轴的旋转序列表示的旋转的对象。

参考

例子

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

沿单轴初始化单次旋转:

>>> r = R.from_euler('x', 90, degrees=True)
>>> r.as_quat().shape
(4,)

使用给定的轴序列初始化单个旋转:

>>> r = R.from_euler('zyx', [90, 45, 30], degrees=True)
>>> r.as_quat().shape
(4,)

使用围绕单个轴的单次旋转初始化堆栈:

>>> r = R.from_euler('x', [90], degrees=True)
>>> r.as_quat().shape
(1, 4)

使用轴序列的单次旋转初始化堆栈:

>>> r = R.from_euler('zyx', [[90, 45, 30]], degrees=True)
>>> r.as_quat().shape
(1, 4)

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

>>> r = R.from_euler('x', [90, 45, 30], degrees=True)
>>> r.as_quat().shape
(3, 4)

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

>>> r = R.from_euler('zyx', [[90, 45, 30], [35, 45, 90]], degrees=True)
>>> r.as_quat().shape
(2, 4)

相关用法


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