__pow__#
- Rotation.__pow__(self, float n, modulus)#
- Compose this rotation with itself n times. - Composition of a rotation - pwith itself can be extended to non-integer- nby considering the power- nto be a scale factor applied to the angle of rotation about the rotation’s fixed axis. The expression- q = p ** ncan also be expressed as- q = Rotation.from_rotvec(n * p.as_rotvec()).- If - nis negative, then the rotation is inverted before the power is applied. In other words,- p ** -abs(n) == p.inv() ** abs(n).- Parameters:
- nfloat
- The number of times to compose the rotation with itself. 
- modulusNone
- This overridden argument is not applicable to Rotations and must be - None.
 
- Returns:
- powerRotationinstance
- If the input Rotation - pcontains- Nmultiple rotations, then the output will contain- Nrotations where the- ith rotation is equal to- p[i] ** n
 
- power
 - Notes - For example, a power of 2 will double the angle of rotation, and a power of 0.5 will halve the angle. There are three notable cases: if - n == 1then the original rotation is returned, if- n == 0then the identity rotation is returned, and if- n == -1then- p.inv()is returned.- Note that fractional powers - nwhich effectively take a root of rotation, do so using the shortest path smallest representation of that angle (the principal root). This means that powers of- nand- 1/nare not necessarily inverses of each other. For example, a 0.5 power of a +240 degree rotation will be calculated as the 0.5 power of a -120 degree rotation, with the result being a rotation of -60 rather than +120 degrees.- Examples - >>> from scipy.spatial.transform import Rotation as R - Raising a rotation to a power: - >>> 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.]) - Inverse powers do not necessarily cancel out: - >>> p = R.from_rotvec([0, 0, 120], degrees=True) >>> ((p ** 2) ** 0.5).as_rotvec(degrees=True) array([ -0., -0., -60.])