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 |
безымянное перечисление
| безымянное перечисление |
AlphaAxis
| static |
Первая ось вращения
BetaAxis
| static |
Вторая ось вращения
GammaAxis
| static |
Третья ось вращения
Документация для этого класса была сгенерирована из следующего файла:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1EulerSystem.html