scipy.spatial.transform.Rotation.
from_euler#
- classmethod Rotation.from_euler(cls, seq, angles, degrees=False)#
從尤拉角初始化。
3D 旋轉可以用繞軸序列進行 3 次旋轉來表示。 理論上,任何三個跨越 3D 歐幾里得空間的軸就足夠了。 實際上,旋轉軸被選擇為基向量。
這三個旋轉可以是在全域參考框架(外在的),也可以是在本體中心參考框架(內在的)中,後者附著在旋轉物體上並與之一起移動 [1]。
- 參數:
- seq字串
指定旋轉軸的序列。 內部旋轉最多 3 個字元,屬於集合 {'X', 'Y', 'Z'};外部旋轉最多 3 個字元,屬於集合 {'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)