本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。