scipy.spatial.transform.Rotation.from_euler¶
- Rotation.from_euler()¶
从欧拉角度初始化。
3-D中的旋转可以由围绕一系列轴的3个旋转的序列来表示。从理论上讲,横跨三维欧几里得空间的任何三个轴都足够了。在实践中,选择旋转轴作为基本矢量。
这三个旋转既可以在全局参照系(外部)中,也可以在以身体为中心的参照系(内在)中,该参照系附着在被旋转的对象上并与其一起移动 [1].
- 参数
- seq字符串
指定旋转轴的顺序。最多3个字符属于集合{‘X’,‘Y’,‘Z’}用于内部旋转,或{‘x’,‘y’,‘z’}用于外部旋转。外部旋转和内部旋转不能在一个函数调用中混合使用。
- angles浮动或类似数组,形状(N,)或(N, [1或2或3] )
以弧度指定的欧拉角 (degrees 为假)或度 (degrees 为True)。对于单个字符 seq , angles 可以是:
单个值
具有形状(N,)的ARRAY_LIKE,其中每个 angle[i] 对应于一次旋转
具有形状(N,1)的ARRAY_LIKE,其中每个 angle[i, 0] 对应于一次旋转
对于2字符宽和3字符宽 seq , angles 可以是:
具有形状(W,)的ARRAY_LIKE,其中 W 是指 seq ,它对应于具有以下特性的单次旋转 W 轴
具有形状(N,W)的ARRAY_LIKE,其中每个 angle[i] 对应于描述一次旋转的欧拉角序列
- degrees布尔值,可选
如果为True,则假定给定角度以度为单位。默认值为False。
- 退货
- 旋转 :
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)