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)指定。 對於單個字元 seqangles 可以是

  • 單一值

  • 形狀為 (N,) 的類陣列,其中每個 angle[i] 對應於單次旋轉

  • 形狀為 (N, 1) 的類陣列,其中每個 angle[i, 0] 對應於單次旋轉

對於 2 個和 3 個字元寬的 seqangles 可以是

  • 形狀為 (W,) 的類陣列,其中 Wseq 的寬度,它對應於具有 W 個軸的單次旋轉

  • 形狀為 (N, W) 的類陣列,其中每個 angle[i] 對應於描述單次旋轉的尤拉角序列

degrees布林值,可選

如果為 True,則給定的角度假定為度數。 預設值為 False。

返回:
rotationRotation 實例

包含旋轉的物件,該旋轉由繞給定軸以給定角度旋轉的序列表示。

參考文獻

範例

>>> 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)