статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

Алгоритм нормализованного 3D поворота

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск

Содержание

[править] Описание проблемы

Проблема возникает при использовании Эйлеровых углов из-за того, что конечный результат серии вращений зависит от порядка промежуточных вращений. Если, например, горизонтальный плоский диск повернуть на 90 градусов относительно Y, а потом относительно X, то плоскость диска будет параллельна Y, а вектор нормали будет параллелен X. Если же сначала произвести поворот относительно X, а затем уже относительно Y, то плоскость диска будет параллельна X, а вектор нормали будет параллелен Y. Таким образом, разная последовательность одинаковых поворотов даёт совершенно разный результат. Аналогично, если объект последовательно вращается вокруг Z (на небольшой угол), Y, X - осей, и угол вращения вокруг оси Y равен 90 градусам, то вращение вокруг оси Z происходит первым и, поэтому, корректно. Вращение вокруг оси Y тоже совершается корректно. Но после вращения вокруг оси Y на 90 градусов, ось X отображается на ось Z. Таким образом, совершая вращение вокруг (относительной) X-оси мы фактически вращаем объект вокруг (абсолютной) оси Z.

[править] Шарнирный замок

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

[править] Решение проблемы

Полностью избавиться от проблемы можно при помощи Алгоритма нормализованного 3D поворота. Задача решается средствами векторной алгебры, в случае полного определения плоскости и траектории вращения каждой из точек 3D объекта. Перемещение точки вычисляется в афинной системе координат. Все плоскости вращения удерживаются единым вектором нормали. Алгоритм обеспечивает корректный пересчёт углов вращения (собственного вращения, прецессии и нутации) и позволяет избежать "шарнирного замка", возникающего при использовании эйлеровых углов в классической 3D матрице поворота. Тем самым отменяется необходимость в использовании тензоров и кватернионов поворота при построении 3D сцены кругового движения и круговом обзоре трёхмерного объекта. Алгоритм нормализованного 3D поворота позволяет корректно решать задачи из серии Three-stage gyro (Трехстепенный гироскоп), в которых даже при использовании кватернионов может возникать блокировка вращения, когда во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов.

[править] Ссылки

  • [1] Проблема "шарнирного замка".
  • [2] Панов А. Алгоритм нормализованного 3D поворота (Вычисление окружности в 3D).

[править] См. также

Пространства имён

Варианты
Просмотры
Действия