scipy.spatial.transform.Rotation.

from_euler#

метод класса Вращение.from_euler(cls, seq, углы, градусы=False)#

Инициализация из углов Эйлера.

Вращения в 3-D могут быть представлены последовательностью из 3 вращений вокруг последовательности осей. Теоретически, любые три оси, охватывающие 3-D евклидово пространство, достаточны. На практике оси вращения выбираются в качестве базисных векторов.

Три вращения могут быть либо в глобальной системе отсчёта (внешние), либо в системе отсчёта, связанной с телом (внутренние), которая прикреплена к вращающемуся объекту и движется вместе с ним [1].

Параметры:
seqstring

Задаёт последовательность осей для вращений. До 3 символов из набора {'X', 'Y', 'Z'} для внутренних вращений или {'x', 'y', 'z'} для внешних вращений. Внешние и внутренние вращения нельзя смешивать в одном вызове функции.

углыfloat или array_like, форма (N,) или (N, [1 или 2 или 3])

Углы Эйлера, заданные в радианах (градусы равно False) или степени (градусы равно True). Для одного символа seq, углы может быть:

  • единственное значение

  • array_like с формой (N,), где каждый angle[i] соответствует одному вращению

  • array_like с формой (N, 1), где каждый angle[i, 0] соответствует одному вращению

Для 2- и 3-символьной ширины seq, углы может быть:

  • array_like с формой (W,) где W является шириной seq, что соответствует одному вращению с W оси

  • array_like с формой (N, W), где каждый angle[i] соответствует последовательности углов Эйлера, описывающей одно вращение

градусыbool, необязательно

Если True, то предполагается, что заданные углы указаны в градусах. По умолчанию False.

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

Объект, содержащий вращение, представленное последовательностью вращений вокруг заданных осей с заданными углами.

Ссылки

Примеры

>>> from scipy.spatial.transform import Rotation as R

Инициализировать одно вращение вдоль одной оси:

>>> r = R.from_euler('x', 90, degrees=True)
>>> r.as_quat().shape
(4,)

Инициализировать одно вращение с заданной последовательностью осей:

>>> r = R.from_euler('zyx', [90, 45, 30], degrees=True)
>>> r.as_quat().shape
(4,)

Инициализировать стек с одним вращением вокруг одной оси:

>>> r = R.from_euler('x', [90], degrees=True)
>>> r.as_quat().shape
(1, 4)

Инициализировать стек с одним вращением с последовательностью осей:

>>> r = R.from_euler('zyx', [[90, 45, 30]], degrees=True)
>>> r.as_quat().shape
(1, 4)

Инициализировать несколько элементарных вращений в одном объекте:

>>> r = R.from_euler('x', [90, 45, 30], degrees=True)
>>> r.as_quat().shape
(3, 4)

Инициализировать несколько вращений в одном объекте:

>>> r = R.from_euler('zyx', [[90, 45, 30], [35, 45, 90]], degrees=True)
>>> r.as_quat().shape
(2, 4)