scipy.spatial.transform.Rotation.
from_euler#
- classmethod Rotation.from_euler(cls, seq, angles, degrees=False)#
从欧拉角初始化。
三维空间中的旋转可以用围绕一系列轴的三个旋转序列来表示。理论上,任何三个跨越三维欧几里得空间的轴都足够。在实践中,旋转轴被选为基向量。
三个旋转可以是全局参考系 (外在) 中的旋转,也可以是与旋转物体相连并随其移动的物体中心参考系 (内在) 中的旋转 [1].
- 参数:
- seq字符串
指定旋转轴的序列。最多 3 个字符属于集合 {‘X’, ‘Y’, ‘Z’} 用于内在旋转,或 {‘x’, ‘y’, ‘z’} 用于外在旋转。外在旋转和内在旋转不能在一个函数调用中混合。
- angles浮点数或类似数组,形状 (N,) 或 (N, [1 或 2 或 3])
以弧度 (degrees 为 False) 或度 (degrees 为 True) 指定的欧拉角。对于单个字符 seq,angles 可以是
单个值
形状为 (N,) 的类似数组,其中每个 angle[i] 对应一个单独的旋转
形状为 (N, 1) 的类似数组,其中每个 angle[i, 0] 对应一个单独的旋转
对于 2 个和 3 个字符宽的 seq,angles 可以是
形状为 (W,) 的类似数组,其中 W 是 seq 的宽度,对应于具有 W 个轴的单个旋转
形状为 (N, W) 的类似数组,其中每个 angle[i] 对应于描述单个旋转的一系列欧拉角
- degrees布尔值,可选
如果为 True,则假设给定的角度为度数。默认值为 False。
- 返回值:
- rotation
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)