本文简要介绍 python 语言中 scipy.spatial.transform.Rotation.as_euler
的用法。
用法:
Rotation.as_euler(self, seq, degrees=False)#
表示为欧拉角。
任何方向都可以表示为 3 个基本旋转的组合。一旦选择了轴序列,欧拉角就定义了围绕每个相应轴的旋转角度 [1]。
[2] 中的算法已用于计算绕给定轴序列旋转的欧拉角。
欧拉角存在万向节锁定问题[3],其中表示失去了一定的自由度,并且不可能唯一地确定第一个和第三个角度。在这种情况下,会发出警告,并将第三个角度设置为零。但是请注意,返回的角度仍然代表正确的旋转。
- seq: 字符串,长度 3
3 个字符属于集合 {‘X’、‘Y’、‘Z’} 用于内部旋转,或 {‘x’, ‘y’, ‘z’} 用于外部旋转 [1]。相邻轴不能相同。外部和内部旋转不能在一个函数调用中混合使用。
- degrees: 布尔值,可选
如果此标志为 True,则返回的角度以度为单位,否则以弧度为单位。默认为假。
- angles: ndarray,形状 (3,) 或 (N, 3)
形状取决于用于初始化对象的输入的形状。返回的角度在以下范围内:
第一个角度属于 [-180, 180] 度(含)
第三个角度属于 [-180, 180] 度(包括)
第二个角度属于:
[-90, 90] degrees if all axes are different (like xyz)
[0, 180] degrees if first and third axes are the same (like zxz)
参数 ::
返回 ::
参考:
[2]Bernardes E, Viollet S (2022) 四元数到欧拉角的转换:一种直接、通用且计算高效的方法。 《公共科学 Library ONE》17(11):e0276302。 https://doi.org/10.1371/journal.pone.0276302
例子:
>>> from scipy.spatial.transform import Rotation as R >>> import numpy as np
表示单次旋转:
>>> r = R.from_rotvec([0, 0, np.pi/2]) >>> r.as_euler('zxy', degrees=True) array([90., 0., 0.]) >>> r.as_euler('zxy', degrees=True).shape (3,)
表示单次旋转的堆栈:
>>> r = R.from_rotvec([[0, 0, np.pi/2]]) >>> r.as_euler('zxy', degrees=True) array([[90., 0., 0.]]) >>> r.as_euler('zxy', degrees=True).shape (1, 3)
表示单个对象中的多个旋转:
>>> r = R.from_rotvec([ ... [0, 0, np.pi/2], ... [0, -np.pi/3, 0], ... [np.pi/4, 0, 0]]) >>> r.as_euler('zxy', degrees=True) array([[ 90., 0., 0.], [ 0., 0., -60.], [ 0., 45., 0.]]) >>> r.as_euler('zxy', degrees=True).shape (3, 3)
相关用法
- Python SciPy Rotation.as_matrix用法及代码示例
- Python SciPy Rotation.as_mrp用法及代码示例
- Python SciPy Rotation.as_quat用法及代码示例
- Python SciPy Rotation.as_rotvec用法及代码示例
- Python SciPy Rotation.approx_equal用法及代码示例
- Python SciPy Rotation.apply用法及代码示例
- Python SciPy Rotation.align_vectors用法及代码示例
- Python SciPy Rotation.from_matrix用法及代码示例
- Python SciPy Rotation.__pow__用法及代码示例
- Python SciPy Rotation.magnitude用法及代码示例
- Python SciPy Rotation.from_quat用法及代码示例
- Python SciPy Rotation.from_mrp用法及代码示例
- Python SciPy Rotation.__getitem__用法及代码示例
- Python SciPy Rotation.from_rotvec用法及代码示例
- Python SciPy Rotation.__mul__用法及代码示例
- Python SciPy Rotation.inv用法及代码示例
- Python SciPy Rotation.random用法及代码示例
- Python SciPy Rotation.from_euler用法及代码示例
- Python SciPy Rotation.mean用法及代码示例
- Python SciPy RealData.set_meta用法及代码示例
- Python SciPy RectBivariateSpline.__call__用法及代码示例
- Python SciPy RectSphereBivariateSpline.ev用法及代码示例
- Python SciPy RegularGridInterpolator.__call__用法及代码示例
- Python SciPy RectSphereBivariateSpline.__call__用法及代码示例
- Python SciPy RectBivariateSpline.ev用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.spatial.transform.Rotation.as_euler。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。