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


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


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

用法:

classmethod  Rotation.from_quat(cls, quat)#

從四元數初始化。

可以使用 unit-norm 四元數 [1] 來表示 3D 旋轉。

高級用戶可能對四元數表示的 3D 空間“double cover”感興趣 [2]。從版本 1.11.0 開始,與四元數 q 相對應的 Rotation r 上的以下操作子集(且僅此子集)保證保留雙覆蓋屬性: r = Rotation.from_quat(q)r.as_quat(canonical=False)r.inv() ,以及使用 * 運算符進行組合,例如 r*r

參數

quat 數組,形狀 (N, 4) 或 (4,)

每行都是一個(可能是非單位範數)四元數,表示主動旋轉,采用 scalar-last (x, y, z, w) 格式。每個四元數將被標準化為單位範數。

返回

rotation Rotation 實例

包含由輸入四元數表示的旋轉的對象。

參考

[2]

Hanson, Andrew J.“四元數可視化”。摩根考夫曼出版公司,舊金山,加利福尼亞州。 2006年。

例子

>>> from scipy.spatial.transform import Rotation as R

初始化單個旋轉:

>>> r = R.from_quat([1, 0, 0, 0])
>>> r.as_quat()
array([1., 0., 0., 0.])
>>> r.as_quat().shape
(4,)

在單個對象中初始化多個旋轉:

>>> r = R.from_quat([
... [1, 0, 0, 0],
... [0, 0, 0, 1]
... ])
>>> r.as_quat()
array([[1., 0., 0., 0.],
       [0., 0., 0., 1.]])
>>> r.as_quat().shape
(2, 4)

也可以有一個單一旋轉的堆棧:

>>> r = R.from_quat([[0, 0, 0, 1]])
>>> r.as_quat()
array([[0., 0., 0., 1.]])
>>> r.as_quat().shape
(1, 4)

四元數在初始化之前被標準化。

>>> r = R.from_quat([0, 0, 1, 1])
>>> r.as_quat()
array([0.        , 0.        , 0.70710678, 0.70710678])

相關用法


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