當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy Rotation.from_euler用法及代碼示例


本文簡要介紹 python 語言中 scipy.spatial.transform.Rotation.from_euler 的用法。

用法:

classmethod  Rotation.from_euler(cls, seq, angles, degrees=False)#

從歐拉角初始化。

3-D 中的旋轉可以由圍繞一係列軸的 3 次旋轉序列來表示。理論上,跨越 3-D 歐幾裏得空間的任何三個軸都足夠了。在實踐中,選擇旋轉軸作為基向量。

這三個旋轉可以在全局參考係(外部)中,也可以在以身體為中心的參考係(內部)中,該參考係連接到旋轉下的對象並隨其移動 [1]。

參數

seq string

指定旋轉軸的順序。最多 3 個字符屬於集合 {‘X’、‘Y’、‘Z’} 用於內部旋轉,或 {‘x’, ‘y’, ‘z’} 用於外部旋轉。外部和內部旋轉不能在一個函數調用中混合使用。

angles float 或 數組,形狀 (N,) 或 (N, [1 or 2 or 3])

以弧度(度為假)或度(度為真)指定的歐拉角。對於單個字符序列,角度可以是:

  • 單個值

  • 形狀為 (N,) 的 數組,其中每個角度 [i] 對應於單個旋轉

  • 形狀為 (N, 1) 的 數組,其中每個角度[i, 0] 對應於單個旋轉

對於 2 和 3 字符寬的序列,角度可以是:

  • 數組 形狀為 (W,) 其中 W 是 seq 的寬度,對應於 W 軸的單次旋轉

  • 形狀為 (N, W) 的 數組,其中每個角度 [i] 對應於說明單個旋轉的歐拉角序列

degrees 布爾型,可選

如果為真,則假定給定角度以度為單位。默認為假。

返回

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)

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.spatial.transform.Rotation.from_euler。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。