scipy.spatial.transform.RigidTransform.

from_rotation#

метод класса RigidTransform.from_rotation(cls, вращение)#

Инициализировать из вращения, без перемещения.

При применении этого преобразования к вектору v, результат будет таким же, как если бы вращение было применено к вектору. Tf.from_rotation(r).apply(v) == r.apply(v)

Параметры:
вращениеRotation экземпляр

Одиночное вращение или набор вращений.

Возвращает:
преобразоватьRigidTransform экземпляр

Примеры

>>> from scipy.spatial.transform import RigidTransform as Tf
>>> from scipy.spatial.transform import Rotation as R
>>> import numpy as np

Создание преобразования из одного вращения:

>>> r = R.from_euler("ZYX", [90, 30, 0], degrees=True)
>>> r.apply([1, 0, 0])
array([0.       , 0.8660254, -0.5     ])
>>> tf = Tf.from_rotation(r)
>>> tf.apply([1, 0, 0])
array([0.       , 0.8660254, -0.5     ])
>>> tf.single
True

Верхняя подматрица 3x3 матрицы преобразования является матрицей вращения:

>>> np.allclose(tf.as_matrix()[:3, :3], r.as_matrix(), atol=1e-12)
True

Создание нескольких преобразований из стека вращений:

>>> r = R.from_euler("ZYX", [[90, 30, 0], [45, 30, 60]], degrees=True)
>>> r.apply([1, 0, 0])
array([[0.        , 0.8660254 , -0.5       ],
       [0.61237244, 0.61237244, -0.5       ]])
>>> tf = Tf.from_rotation(r)
>>> tf.apply([1, 0, 0])
array([[0.        , 0.8660254 , -0.5       ],
       [0.61237244, 0.61237244, -0.5       ]])
>>> tf.single
False
>>> len(tf)
2