Spec-Zone.ru › Eigen3

Eigen::EulerSystem

шаблон<int _AlphaAxis, int _BetaAxis, int _GammaAxis>
класс Eigen::EulerSystem< _AlphaAxis, _BetaAxis, _GammaAxis >

Представляет фиксированную систему вращения Эйлера.

Цель этого метакласса — представить систему Эйлера во время компиляции для EulerAngles.

Вы можете использовать этот класс для двух целей:

  • Создать систему Эйлера и передать её как параметр шаблона в EulerAngles.
  • Получить данные о системе Эйлера во время компиляции. (например, является ли она системой Тейта—Брайана)

Вращение Эйлера представляет собой набор из трёх вращений вокруг фиксированных осей. (см. EulerAngles) Этот метакласс хранит постоянно эти подписанные оси. (см. EulerAxis)

Типы систем Эйлера

Поддерживаются все и только допустимые вращения Эйлера в трех измерениях над стандартными подписанными осями {+X,+Y,+Z,-X,-Y,-Z} :

  • все оси X, Y, Z в каждом допустимом порядке (см. ниже, какой порядок допустим)
  • вращение вокруг оси поддерживается как в положительном, так и в отрицательном направлениях.
  • поддерживаются системы Тейта—Брайана и собственные/классические углы Эйлера (т. е. обратные).

Поскольку EulerSystem поддерживает как положительные, так и отрицательные направления, это различие в вращении может быть названо по-другому:

  • правая система координат или левая система координат
  • против часовой стрелки или по часовой стрелке

Заметьте, что все комбинации осей допустимы и приведут к статическому утверждению. Одинаковые неподписанные оси не могут быть соседними, например, {X,X,Y} недопустимо. Это приводит к двум и только двум классам:

  • Система Тейта—Брайана — все неподписанные оси разные, например, {X,Y,Z}
  • собственные/классические углы Эйлера — первая и третья неподписанные оси равны, а вторая — разная, например, {X,Y,X}

Внутренние и внешние системы Эйлера

Для простоты поддерживаются только внутренние системы Эйлера. Если вы хотите использовать внешние системы Эйлера, просто используйте эквивалентный внутренний обратный порядок осей и углов. То есть оси (A,B,C) преобразуются в (C,B,A), а углы (a,b,c) — в (c,b,a).

Удобные псевдонимы типов

Существуют удобные псевдонимы типов для EulerSystem (только для систем Эйлера с положительными осями) в виде EulerSystem{A}{B}{C}, например, EulerSystemXYZ.

Дополнительное чтение

Дополнительную информацию об углах Эйлера см. на https://en.wikipedia.org/wiki/Euler_angles

Параметры шаблона
_AlphaAxis первая фиксированная EulerAxis
_BetaAxis вторая фиксированная EulerAxis
_GammaAxis третья фиксированная EulerAxis
перечисление {
AlphaAxisAbs ,
BetaAxisAbs ,
GammaAxisAbs ,
IsAlphaOpposite ,
IsBetaOpposite ,
IsGammaOpposite ,
IsOdd ,
IsEven ,
IsTaitBryan
}
const int AlphaAxis
const int BetaAxis
const int GammaAxis

безымянное перечисление

шаблон<int _AlphaAxis, int _BetaAxis, int _GammaAxis>
безымянное перечисление
Перечислитель
AlphaAxisAbs

первая ось вращения без знака

BetaAxisAbs

вторая ось вращения без знака

GammaAxisAbs

третья ось вращения без знака

IsAlphaOpposite

является ли ось alpha отрицательной

IsBetaOpposite

является ли ось beta отрицательной

IsGammaOpposite

является ли ось gamma отрицательной

IsOdd

является ли система Эйлера нечётной

IsEven

является ли система Эйлера чётной

IsTaitBryan

является ли система Эйлера системой Тейта—Брайана

AlphaAxis

шаблон<int _AlphaAxis, int _BetaAxis, int _GammaAxis>
const int Eigen::EulerSystem< _AlphaAxis, _BetaAxis, _GammaAxis >::AlphaAxis
static

Первая ось вращения

BetaAxis

шаблон<int _AlphaAxis, int _BetaAxis, int _GammaAxis>
const int Eigen::EulerSystem< _AlphaAxis, _BetaAxis, _GammaAxis >::BetaAxis
static

Вторая ось вращения

GammaAxis

шаблон<int _AlphaAxis, int _BetaAxis, int _GammaAxis>
const int Eigen::EulerSystem< _AlphaAxis, _BetaAxis, _GammaAxis >::GammaAxis
static

Третья ось вращения


Документация для этого класса была сгенерирована из следующего файла:
  • EulerSystem.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1EulerSystem.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API