__pow__#
- Вращение.__pow__(self, float n, модуль)#
Скомбинировать это вращение с самим собой n раз.
Композиция вращения
pс самим собой может быть расширено до нецелыхnрассматривая степеньnбыть масштабным коэффициентом, применяемым к углу поворота вокруг фиксированной оси вращения. Выражениеq = p ** nтакже может быть выражено какq = Rotation.from_rotvec(n * p.as_rotvec()).Если
nотрицательно, то вращение инвертируется перед применением степени. Другими словами,p ** -abs(n) == p.inv() ** abs(n).- Параметры:
- nfloat
Количество раз, которое вращение композируется само с собой.
- модульNone
Это переопределённый аргумент, неприменимый к Rotations и должен быть
None.
- Возвращает:
- степень
Rotationэкземпляр Если входной Rotation
pсодержитNнесколько вращений, тогда выходные данные будут содержатьNвращения, гдеiвращение th равноp[i] ** n
- степень
Примечания
Например, степень 2 удвоит угол поворота, а степень 0.5 уменьшит его вдвое. Есть три примечательных случая: если
n == 1тогда возвращается исходное вращение, еслиn == 0тогда возвращается тождественное вращение, и еслиn == -1затемp.inv()возвращается.Обратите внимание, что дробные степени
nкоторые фактически извлекают корень вращения, делают это с использованием кратчайшего пути наименьшего представления этого угла (главный корень). Это означает, что степениnи1/nне обязательно являются обратными друг другу. Например, степень 0.5 поворота на +240 градусов будет вычислена как степень 0.5 поворота на -120 градусов, с результатом поворота на -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.])