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


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


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

用法:

Rotation.__pow__()#

將該旋轉與自身組合 n 次。

通過將冪 n 視為應用於繞旋轉固定軸的旋轉角度的比例因子,旋轉 p 與其自身的組合可以擴展到非整數 n。表達式 q = p ** n 也可以表示為 q = Rotation.from_rotvec(n * p.as_rotvec())

如果n 為負,則在通電之前反轉旋轉。換句話說,p ** -abs(n) == p.inv() ** abs(n)

參數

n 浮點數

與自身組成旋轉的次數。

modulus None

此覆蓋參數不適用於旋轉,並且必須是 None

返回

power Rotation 實例

如果輸入旋轉 p 包含 N 多次旋轉,則輸出將包含 N 旋轉,其中 i 次旋轉等於 p[i] ** n

注意

例如,2 的冪將使旋轉角度加倍,0.5 的冪將使角度減半。有三種值得注意的情況:如果n == 1則返回原始旋轉,如果n == 0則返回恒等旋轉,如果n == -1則返回p.inv()

請注意,分數冪 n 有效地獲取旋轉根,使用該角度(主根)的最短路徑最小表示來實現。這意味著n1/n 的冪不一定彼此相反。例如,+240 度旋轉的 0.5 次方將被計算為 -120 度旋轉的 0.5 次方,結果是 -60 度而不是 +120 度旋轉。

例子

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

旋轉的冪:

>>> p = R.from_rotvec([1, 0, 0])
>>> q = p ** 2
>>> q.as_rotvec()
array([2., 0., 0.])
>>> r = p ** 0.5
>>> r.as_rotvec()
array([0.5, 0., 0.])

逆冪不一定會抵消:

>>> p = R.from_rotvec([0, 0, 120], degrees=True)
>>> ((p ** 2) ** 0.5).as_rotvec(degrees=True)
array([  -0.,   -0., -60.])

相關用法


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