from_components#
- метод класса RigidTransform.from_components(cls, перевод, вращение)#
Инициализация жесткого преобразования из компонентов переноса и вращения.
При создании жесткого преобразования из трансляции и вращения, трансляция применяется после вращения, так что
tf = Tf.from_components(translation, rotation)эквивалентноtf = Tf.from_translation(translation) * Tf.from_rotation(rotation).При применении преобразования к вектору
v, результат такой же, как если бы преобразование было применено к вектору следующим образом:tf.apply(v) == translation + rotation.apply(v)- Параметры:
- переводarray_like, форма (N, 3) или (3,)
Одиночный вектор переноса или набор векторов переноса.
- вращение
Rotationэкземпляр Одиночное вращение или набор вращений.
- Возвращает:
RigidTransformЕсли rotation одиночное, а translation имеет форму (3,), то возвращается одно преобразование. В противном случае возвращается стек преобразований.
Примеры
>>> from scipy.spatial.transform import RigidTransform as Tf >>> from scipy.spatial.transform import Rotation as R >>> import numpy as np
Создание из одного вращения и трансляции:
>>> t = np.array([2, 3, 4]) >>> r = R.from_euler("ZYX", [90, 30, 0], degrees=True) >>> r.as_matrix() array([[ 0. , -1., 0. ], [ 0.8660254, 0., 0.5 ], [-0.5 , 0., 0.8660254 ]]) >>> tf = Tf.from_components(t, r) >>> tf.rotation.as_matrix() array([[ 0. , -1., 0. ], [ 0.8660254, 0., 0.5 ], [-0.5 , 0., 0.8660254 ]]) >>> tf.translation array([2., 3., 4.]) >>> tf.single True
При применении преобразования к вектору
v, результат такой же, как если бы преобразование было применено к вектору следующим образом:tf.apply(v) == translation + rotation.apply(v)>>> r.apply([1, 0, 0]) array([0. , 0.8660254, -0.5 ]) >>> t + r.apply([1, 0, 0]) array([2. , 3.8660254, 3.5 ]) >>> tf.apply([1, 0, 0]) array([2. , 3.8660254, 3.5 ])