scipy.spatial.transform.Rotation.
__pow__#
- Rotation.__pow__()#
將此旋轉與自身複合 n 次。
旋轉
p
與自身的複合可以擴展到非整數n
,方法是將冪次n
視為應用於繞旋轉固定軸的旋轉角度的比例因子。表達式q = p ** n
也可以表示為q = Rotation.from_rotvec(n * p.as_rotvec())
。如果
n
為負數,則旋轉會在應用冪次之前反轉。換句話說,p ** -abs(n) == p.inv() ** abs(n)
。- 參數:
- nfloat
將旋轉與自身複合的次數。
- modulusNone
此覆寫的參數不適用於 Rotations,並且必須為
None
。
- 返回:
- power
Rotation
實例 如果輸入旋轉
p
包含N
個多個旋轉,則輸出將包含N
個旋轉,其中第i
個旋轉等於p[i] ** n
- power
註解
例如,2 的冪次會使旋轉角度加倍,而 0.5 的冪次會使角度減半。有三個值得注意的情況:如果
n == 1
則返回原始旋轉,如果n == 0
則返回單位旋轉,如果n == -1
則返回p.inv()
。請注意,有效取得旋轉根的分數冪次
n
,會使用該角度的最短路徑最小表示形式(主根)來執行此操作。這表示n
和1/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.])