Вращающийся стереоскопический гиперкуб


screen shot










Заметьте, что на экране вращается один куб, а не два!!!

JARS TOP 1%, July 1996
(S/N B080731-2)
 
Gamelan Featured Applet, May 1996
 
Java-SIG's Best 100 Applets
(Published by John Wiley & Sons)


Как работать с апплетом

Java
Если Ваш броузер поддерживает Java, Вы можете наблюдать вращающееся изображение куба, представленное Java-апплетом выше. В противном случае Вы увидите только неподвижное изображение.
Наблюдение

Интерфейс пользователя

Кнопка Старт/Стоп
Кнопка Старт/Стоп соответственно начинает и заканчивает вращение куба.
Кнопка Отделить/Присоединить
Кнопка "Отделить" открепляет апплет от web-страницы и воспроизводит его в отдельном окне. Вы можете изменять размеры этого окна или максимизировать его таким образом, чтобы оно заполнило весь экран. Как только апплет трансформируется в отдельное окно, появляется кнопка "Присоединить", нажатие на которую вызывает прикрепление апплета к web-странице.
Контроль скорости
Контроль скорости изменяет скорость вращения от 1 до 100 (произвольные величины). При нажатии на кнопку "+" скорость возрастает, на кнопку "-" - уменьшается. С определенной точки увеличение скорости не будет приводить ни к какому эффекту из-за ограничений, связанных с Вашим компьютером.
Контроль проекции
Контроль проекции изменяет расстояние от куба до точки, из которой исходят лучи, необходимые для проекции куба из 4х-мерного на 3х-мерное пространство. Диапазон изменяется от 0 до 95 с шагом 0.5. Установка 0 дает ортогональную проекцию; установка большого числа дает эффект "рыбьего глаза".
Кнопка "Стерео"
С помощью этой кнопки вызываются три различных режима обозрения:
  • 1. Совмещенные изображения для просмотра с помощью красно-синих 3х-мерных очков.
  • 2. Совмещенные изображения для просмотра с помощью красно-зеленых 3х-мерных очков.
  • 3. Отдельные изображения для просмотра с помощью метода пересечения взгляда.
Ручное вращение
Для поворота изображения в 3х-мерном пространстве щелкните мышкой по области вращения гиперкуба, и перемещайте мышь с нажатой левой кнопкой. Для поворота в 4х-мерном пространстве нажмите клавишу Shift перед теми же действиями, которые описаны выше. Вращая таким образом гиперкуб, Вы можете придать ему любую желаемую ориентацию в пространстве.

Информация о гиперкубе

Что это такое?
Вы рассматриваете проекцию 4х-мерного гиперкуба на 3х-мерное пространство. Гиперкуб - это обобщение 3х-мерного куба до 4х- или более -мерного. 4х-мерный гиперкуб называется еще тессерактом. Заметьте, что четыре грани встречаются на каждой оси гиперкуба. Эти грани взаимно перпендикулярны в 4х-мерном пространстве.
Конструкция
Человек плохо представляет объекты в более, чем 3х-мерном пространстве. Решить эту проблему можно путем обобщения знаний обо всех знакомых пространствах (одно-, 2х- и 3х- мерных):
  • Чтобы построить линию через две точки, поместите одну точку над другой и соедините их.
  • Чтобы построить квадрат из двух линий, поместите одну линию над другой (параллельно ей) и соедините их концы.
  • Чтобы построить куб из двух квадратов, поместите один квадрат над другим (в параллельных плоскостях) и соедините все углы.
  • Чтобы построить гиперкуб из двух кубов, поместите один куб над другим (в параллельных пространствах) и соедините все вершины.
В программе апплета каждая вершина гиперкуба представлена 4-мя координатами.

Замечания по программе

Проекция с 4х-мерного на 3х-мерное пространство
Так же как 3х-мерный куб может быть спроектирован на плоскость cube (изображение куба на плоскости), 4х-мерный куб может быть спроектирован на 3х-мерное пространство. Лучи проводятся в 4х-мерном пространстве из точки с координатами (0,0,0,w0) через каждую вершину объекта (центр которого находится в точке (0,0,0,0) и падают на 3х-мерное пространство (характеризуемое тем, что w=0). Расстояние от точки, в которой берут свое начало лучи, до объекта (w0) может быть изменено с помощью Контроля проекции. Установка нуля даст неопределенную w0, то есть получится ортогональная проекция (все лучи параллельны). Установка единицы (невозможно) дала бы точку начала лучей на гиперсфере, которая проходит через вершины объекта. Если говорить точнее, установки контроля проекции определяют квадрат со стороной R/w0, где R - это радиус гиперсферы, проведенной через вершины объекта, а w0 - расстояние от центра объекта до точки начала лучей.

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

Ссылки на другие подобные апплеты


Исходный код Java: <здесь>
Email автора: Mark Newbold <mark@dogfeathers.com>
URL этой странички в оригинале: http://dogfeathers.com/java/hyprcube.html