Как стать автором
Обновить

Четырёхмерный гиперкуб. Программа Transformator 4D

В данной статье хотелось бы поговорить о четырехмерном гиперкубе (тессеракте), и его построение в программе Transformator 4D.

Как мы знаем из геометрии, квадрата – это правильный четырехугольник у которого все углы и стороны равны. Куб можно охарактеризовать следующим образом, это выпуклая фигура, обязательно замкнутая и состоящая из групп параллельных линий расположенных относительно друг друга на противоположных краях фигуры и, соединенных друг с другом под прямым углом. Следовательно гиперкуб — это n-мерная аналогия квадрата у которого n=2 и, куба у которого n=3.

Рассмотрим рисунок 1. На нем изображена точка, которая есть гиперкуб размерностью равной 0. Далее если сдвинуть точку на единицу длины, что приведет к получению отрезка единичной длины и как следствие гиперкуба размерностью единица. После чего сдвинуть отрезок на ту же единицу длины, но перпендикулярно в направлении исходного отрезка, и продолжить эту операцию до замыкания контура, то получится квадрат – гиперкуб размерностью в два. Если продолжить построение, то сдвигая квадрат на ту же единицу длины обязательно в направлении перпендикулярному плоскости квадрата, получим куб или гиперкуб размерностью 3. И наконец если сдвинуть куб на единицу длины в четвертом измерении то получим четырехмерный гиперкуб. Такое процесс можно повторять на n-е количество измерений.

image
Рис.1

В евклидовом пространстве тессеракт характеризуется как объемная оболочка состоящая из точек: +-1, +-1, +-1, +-1, что можно записать в виде:

image

image

Отсюда видно, что тессеракт ограничен 8-ю гиперплоскостями, пересечение которых с самим тессерактом задает его трехмерные грани, они же являются просто кубами, и в конечном итоге получаем:
  • 8-мь трехмерных граней,
  • 24-и двумерных,
  • 32-а ребра,
  • 16-ть вершин.

Программа Transformator 4D предназначена для создания модели, путем считывания аффинных преобразований и последующим их созданием.

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

Как задавать фигуры

В директории с программой создается папка FIGURES. Каждая фигура задается при помощи двух файлов: первый FigureX.txt, где находятся координаты вершин, второй FigureXm.txt, где находится матрица смежности этих вершин. Х – номер фигуры.

Характеристика файла FigureX.txt:

Координаты первой вершины по Х, находятся в первой строке.
Координаты второй вершины по У, находятся во второй строке.
и т.д. Последняя строка «х» — конец данных.

Характеристика файла FigureXm: Матрица смежности, показывает номера вершин из первого файла.

При запуске программа требует файл acrTrans2FA.txt. Файл описывает четырехмерную фигуру и аффинные преобразования в отдельности для каждого полигона.

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

После указания каждого полигона нужно указать аффинные преобразования этого полигона.

Пример: Сборка развертки куба на основе построения квадрата.

image
Рис. 2

1 Замкнутые полигоны
0 0 0 1 Координаты вектора проецирования
6 Шесть полигонов
4 4 точки в первом полигоне
1 1 0 Цвет полигона №1

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4

0 Аффинных преобразований отсутствуют — квадрат №1

4 4 точки — квадрат №2
0.5 0.5 0.5 Цвет полигона №2

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4

2 Два преобразования
2 1 -1 0 0 0 Смещение на -1 по х
6 1 0 -1 0 0 0 0 Разворот по оси zx

4 4 точки в квадрате №3
0.1 0.1 0.1 Цвет полигона 3

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4
2 Два преобразования
6 1 0 1 0 0 0 0 Разворот вокруг y от x к z
2 1 1 0 0 0 Смещение на 1 по x

4 Квадрат №4
0.6 0.1 0.7 Цвет полигона 4

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4

2 Два преобразования
2 1 0 -1 0 0 Смещаем вниз по y
6 1 0 0 0 -1 0 0 Перемещение вокруг x от z к y

4 Квадрат №5
1 0 0 Цвет полигона 5

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4

2 Два преобразования
6 1 0 0 0 1 0 0 Перемещение вокруг x от y к z
2 1 0 1 0 0 Смещаем вверх по y

4 Квадрат №6
0.25 0.5 0.5 Цвет полигона №6

0 0 0 0 Точка 1
1 0 0 0 Точка 2
1 1 0 0 Точка 3
0 1 0 0 Точка 4

4 Четыре преобразования
2 1 0 -1 0 0 Смещаем вниз по y
6 1 0 0 0 -1 0 0 Перемещение вокруг x от z к y
2 1 0 -1 0 0 Смещение вниз для квадрата №6
6 1 0 0 0 -1 0 0 Вращение относительно нижнего ребра четвертого квадрата.

Квадрат №6: описывает два поворота, так как одно из его ребер является общим с квадратом №4, поэтому изначально вращается квадрат №4, после происходит смещение на 1 вниз, и далее вращение вокруг этого же ребра.

Выглядит это так:

image
Рис.3

Как задать описание тессеракта:

image
Рис.4

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

image

Исходя из основ сборки куба, также можно написать программу сборки тессеракта или обратного.

Интересно знать

В фильме «Куб 2: Гиперкуб» — восемь незнакомых людей просыпаются в комнатах, имеющих форму куба. Комнаты находятся внутри четырёхмерного гиперкуба. Комнаты постоянно перемещаются путём «квантовой телепортации», и если перелезть в соседнюю комнату, то вернуться в прежнюю уже маловероятно. В гиперкубе пересекаются параллельные миры, время в некоторых комнатах течёт по-разному, а некоторые комнаты являются смертельными ловушками.

Используемый источник: damateur.narod.ru
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.