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


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


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

用法:

Rotation.__mul__()#

與另一個組成這個輪換。

如果pq是兩次旋轉,那麽“q 後跟 p”的組合等價於p*q。就旋轉矩陣而言,組合可以表示為p.as_matrix().dot(q.as_matrix()).

參數

other Rotation 實例

包含要與此組合的旋轉的對象。請注意,旋轉組合不是可交換的,因此 p * qq * p 不同。

返回

composition Rotation 實例

此函數支持一次組合多個旋轉。以下情況是可能的:

  • 任何一個p或者q包含單個旋轉。在這種情況下作品包含將另一個對象中的每個旋轉與單個旋轉組合的結果。

  • 兩個都pq包含N輪換。在這種情況下,每次旋轉p[i]由相應的旋轉組成q[i]輸出包含N輪換。

例子

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

兩個單次旋轉的組成:

>>> p = R.from_quat([0, 0, 1, 1])
>>> q = R.from_quat([1, 0, 0, 1])
>>> p.as_matrix()
array([[ 0., -1.,  0.],
       [ 1.,  0.,  0.],
       [ 0.,  0.,  1.]])
>>> q.as_matrix()
array([[ 1.,  0.,  0.],
       [ 0.,  0., -1.],
       [ 0.,  1.,  0.]])
>>> r = p * q
>>> r.as_matrix()
array([[0., 0., 1.],
       [1., 0., 0.],
       [0., 1., 0.]])

包含相同旋轉次數的兩個物體的合成:

>>> p = R.from_quat([[0, 0, 1, 1], [1, 0, 0, 1]])
>>> q = R.from_rotvec([[np.pi/4, 0, 0], [-np.pi/4, 0, np.pi/4]])
>>> p.as_quat()
array([[0.        , 0.        , 0.70710678, 0.70710678],
       [0.70710678, 0.        , 0.        , 0.70710678]])
>>> q.as_quat()
array([[ 0.38268343,  0.        ,  0.        ,  0.92387953],
       [-0.37282173,  0.        ,  0.37282173,  0.84971049]])
>>> r = p * q
>>> r.as_quat()
array([[ 0.27059805,  0.27059805,  0.65328148,  0.65328148],
       [ 0.33721128, -0.26362477,  0.26362477,  0.86446082]])

相關用法


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