НачалоСодержаниеПрочееГостевая

Назад Трехмерные аффинные преобразования

Далее Проблемы с вращением


3. Математика

3.2 Четырехмерные аффинные преобразования


  Для начала советую ознакомится с главами Матрицы, Аффинные преобразования и

Трехмерные аффинные преобразования


  Четырехмерные аффинные преобразования -  те же, что и уже рассмотренные и их матрицы можно получить логическим путем. Просто матрицы будут пять на пять.

Перемещение просто и легко

 

Масштабирование -  от туда же

 

Сдвиг - вместо многоточий какие-нибудь коэффициенты.

Но не все так просто...

Поворот

Вот тут начинаются танцы с бубнами вокруг пионерского костра.
Разберем для начала само понятие ПОВОРОТ. Из практики известно про поворот вокруг точки на плоскости и вокруг прямой в 3-х мерном пространстве. Вокруг чего будем вращать в 4D? Сейчас расскажу.

Сначала определимся.
1. Простое вращение происходит в плоскости. (В 3D-пространстве сложные вращения можно получить совокупностью простых вращений). В одном из двух направлений.
2. Вращение происходит вокруг объекта размерностью (d-2), где d – размерность пространства. В самом деле, на плоскости (размерность 2) мы можем вращать вокруг точки (размерность 0). В 3D пространстве вращение вокруг точки не имеет четкого определения (все равно придется указывать несколько углов относительно чего-либо). Так что вращение в 3D пространстве (размерность 3) происходит вокруг прямой (размерность 1). Откуда тут появилось (d-2)? А вот откуда: d-размерность пространства, 2 – размерность плоскости, в которой происходит вращение. Их разница это оставшиеся измерения. И вокруг объекта определяемой их совокупностью мы будем вращать. В данном случае две оси - определяют плоскость.
С вращением вокруг плоскости мы уже сталкивались, когда построили развертку гиперкуба. Для того чтобы собрать из нее четырехмерный куб надо как раз повернуть все внешние кубы вокруг своих граней на 90 градусов.

Но на самом деле (исходя из смысла понятия вращение) главным и определяющим является совокупность осей, которые лежат в плоскости вращения, и их порядок указывает направление вращения (например от x y). А вот вокруг чего производится поворот - это не важно.

Пионерский костер зажгли. Но ведь я Вам обещал танцы. Для этого понадобится пара бубнов. Их есть у меня.


 

Бубен №1.

2D-пространство является частным случаем 3D.
Вращение вокруг точки O в 2D частный случай вращение в 3D вокруг «только что появившейся» оси
z. (сравните матрицы вращения в 2D и вращения вокруг z  в 3D)
Как и должно быть 3D-
пространство – частным случаем 4D.
Значит известные нам вращения вокруг осей
x, y и z должны быть представлять вращения вокруг каких-то плоскостей в 4D. Для этого просто добавим к этим матрицам по одной строке и одному столбцу, а к осям поворота ось q. (а пересечение двух осей определяет плоскость)

3D 4D
Определение Матрица Определение Матрица
Вокруг x от y к z Вокруг xq от y к z
Вокруг y от z к x Вокруг yq от z к x
Вокруг z от x к y Вокруг zq от x к y

Как же получить другие вращения? Для 3D-матриц у нас было два способа логического нахождения матриц. Сразу скажу, что способ со смещением строк и столбцов не совсем подходит (предлагаю вам проверить это самим). Да и способ с тремя уравнениями не совсем нам подходит. Но после небольшой модификации будет в самый раз. А пока...

Бубен №2

  Сей артефакт закопан недалеко от поверхности. Сейчас откопаем, приватизируем и будем пляски танцевать.

  Если присмотреться внимательнее к матрицам аффинных преобразований определяющих вращение и их определениям, то можно заметить, что расположение значимых элементов и определение матрицы связано следующим образом (в принципе следующий вывод напрашивается сам собой, если разобраться с самой сущностью понятия вращение, но на матрицах нагляднее).

Из пояснения каким образом матрица описывает преобразование можно сделать вывод, что в матрице вращения коэффициенты стоят в тех строках (и столбцах), которые указывают на оси в плоскости вращения, а строки  (и столбцы) без коэффициентов на то, вокруг чего идет вращение.

Косинусы всегда на диагонали, а синусы в двух других углах воображаемого квадрата. Также с помощью нехитрых умозаключений сделаем вывод, что строка (но не столбец) с минусом определяет первую ось в направлении вращения (от которой), а строка без минуса вторую ось (к которой). Со столбцами наоборот..

Таким образом можно получить любые матрицы на заказ. Рассмотрим таблицу. В каждой строке определяются всевозможные параметры вращения. В последнем столбце матрица, полученная с помощью только что полученного вывода.

 

Вокруг чего От чего К чему Матрица
xy z q
xz q y
xq y z
yz q x
yq z x
zq x y
Конечно Вы можете и не согласится со взятыми направления поворота (от ... к ...) но тут нечего не поделаешь. Дело вкуса.

Обобщим. Существует, на этот раз не циклическая последовательность осей x, y, z, q. И для элементов этой последовательность есть понятия меньше-больше (в зависимости от расположения в порядке следования x<y<z<q)

Тогда схема матрицы для вращения в направлении от Оси1 к Оси2.

Если Ось1 меньше, чем Ось2, то минус стоит у верхнего (правого) синуса. Если  Ось1 больше, чем Ось2, то минус стоит у нижнего (левого) синуса

Как видите тут даже нет упоминания про то, вокруг чего поворачиваем. Это еще одно доказательство того, что вращение происходит не "вокруг чего-то", а "от...к..."

Это подтверждается и вот этой формулой (3.1)

Только в ней система названий не подходит к нашему случаю. Давайте разберемся.

Для начала напомню ее

где "текущий", "следующий" и "предыдущий" - это обобщающие названия координат (по названию осей) рассматриваемой в циклической последовательности x→y→z→ x→y,… и т.д. При этом "текущей" берется та, которая определяет ось, вокруг которой происходит поворот.

Поясню на примере, когда текущий - x.

В нашем случае поворот происходит вокруг плоскости. А ведь как мы выяснили при построении модели четырехмерного пространства в этом пространстве нет последовательности плоскостей. И поэтому нет "предыдущей" и "следующей".

Поэтому нам надо изменить систему названий.

Назовем 01 и 02 - оси, определяющие плоскость, вокруг которой происходит вращение. А также:

1 - первая ось в последовательности направления (от которой)

2 - вторая ось (к которой)

Тогда получаем

 

В файлах моделирования трехмерной проекции четырехмерного объекта, направления поворота берутся в таком виде:  xy, xz, xq, yz, yq, zq.

Но существует определенные проблемы с реализацией вращения в программах моделирования. Подробности в следующей статье.



Назад Трехмерные аффинные преобразования

Далее Проблемы с вращением


НачалоСодержаниеПрочееГостевая

©2007 AnCoRecords   "d'Amateur: Записки 4D любителя"    E-mail автору

 

Hosted by uCoz