当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。