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

Описание Transformator4D Версия 1

Описание Transformator4D Версия 2

Transformator4D

4. Программа Transformator4D

На самом деле это две программы. Скачать их можно

на главной странице программы Transformator4D,

но советую сначала ознакомится с возможностями программы.

Задача обеих следующая.

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

Основы Transformator4D.

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

   Для тех кто в пропустил раздел Математика рекомендую вот это краткое изложение.

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

  Файлы данных представляют из себя текстовые файлы (расширение txt). Данные в них представлены в числовом виде.

   Данные об объектах - описывают геометрический объект. Данные аффинных преобразований - описывают последовательность аффинных преобразований объекта.

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

Последовательность действий программы.

   Запуск. Программа считывает данные с файла(ов), создает модель. Считывает аффинные преобразования и создает их последовательность.

  Работа. После изменения шага (вперед-назад) рассчитывается матрица текущего преобразования и в зависимости от нее определенным образом трансформируется объект, после чего рассчитывается трехмерная проекция и выводится на экран.

  В программе предусмотрена возможность интерактивного изменения четырехмерного вектора проекции.

Структура файлов.

  Файлы должны состоять только из ЧИСЛОВЫХ данных разделенных РАЗДЕЛИТЕЛЯМИ. Разделитель - это пробел, знак табуляции или перевод строки (Enter). Несколько разделителей подряд воспринимаются программой как один. Не допускаются комментарии и другая посторонняя информация. Разделителем целой и дробной частей в вещественных числах является ТОЧКА (но не запятая). В зависимости от формата файла некоторые значения могут быть вещественными, а некоторые только ЦЕЛЫМИ. У вещественных значений необязательно писать дробную частью Например: запись 1 и 1.0 - обозначают одно и тоже число. Вы можете писать все значения подряд с одну строку, можете каждое значение на новой строке, но для наглядности советую данные делить на блоки.

  Сначала указывается количество следующих подразделов. После этого необходимо их все перечислить. Для разных понятий существует различное количество описываемых значений. Например: для вершины - четыре, для поворота - семь. Важно их все перечислить, так как программа читает все данные подряд, и из-за ошибки в начале файла (например, забыли указать одно значение, или указали 5 вершин, а описали 4 или 6) произойдет некорректное чтение всего файла.

Например (середина файла) после указания

4 //четыре вершины

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

 

Описание фигуры.

Каждая фигура состоит из ломанных (polyline) или полигонов (polygon) (далее все это будем назвать полигоном). Каждый полигон состоит из вершин (vertex). Каждая вершина определяется четырьмя координатами Существует два режима полигонов: замкнутые и нет. Замкнутые получаются соединением отрезком первой и последней вершины. Например, при указании четырех точек замкнутый полигон это четырехугольник, незамкнутый - ломанная из трех отрезков. Существует ограничение на количество полигонов и вершин. Не больше 60 полигонов, в каждом не больше 60 вершин. Также нужно указать цвет. В файле для версии 1 цвет указывается глобально для всего объекта, сразу после указания замкнутости полигонов. Для второй версии цвет указывается после количества вершин в полигоне. Таким образом можно создать объект из полигонов разных цветов, например, чтобы выделить интересующую часть.

Описание аффинных преобразований.

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

Дополнение

Программу "Transformation4D" можно использовать для просмотра трехмерных объектов и трехмерных аффинных преобразований. Необходимо везде, где есть компонент, принадлежащий четвертому измерению указывать 0.


Transformator4D. Что на экране?

Программа создает изображение трехмерной проекции четырехмерного объекта.

Оси различных цветов x - красный, y - зеленый, z - синий (xyz-RGB).

Фиолетовый отросток - проекция оси q  на трехмерное пространство.

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


Управление.

Мышкой можно управлять положением камеры просмотра: положение относительно системы координат.

Левая кнопка мыши движение камеры по воображаемой сфере, с центром в начале координат.

Правая кнопка мыши - приближение, удаление камеры.

 

Клавиатура.

Управление вектором проекции

Клавиши (Q,A),(W,S),(E,D),(R,F) управляют вектором проекции четырехмерного пространства на трехмерное.

Q, A - управление координатой x вектора проецирования: увеличение, уменьшение.

Все остальные пары таким же образом для координат y,z,q.

 

Клавиши "<" и ">" управляют шагом. Соответственно на шаг назад или вперед.

Клавиша X - показать/убрать сетку трехмерного пространства.

Клавиша С - показать/убрать сетку Оси трехмерного пространства

Клавиша V - показать убрать изображение главного объекта и проекции оси q.


Текущая информация.

При  запуске программы создается два окна. Одно для прорисовки модели, в другом (консоль) выводится текущая информация.

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


TransformatorV1

Примерный вид (фигура - куб, преобразование - вращение вокруг плоскости xy)

//начало TransformatorV1

Start Read Special Files

Line Loop - 1 замкнутые полигоны, 2 - незамкнутые  ломанные

Color - цвет объекта

Number Polylines - количество полигонов (ломанных) в объекте

----- Polyline# n Number Vertex v - полигон № n  количество вершин v

               x,y,z,q - координаты очередной вершины

Projection Vector (x,y,z,q) - вектор проекции

Number Affine - количество аффинных преобразований для всей фигуры

----- Affine# n Type t  Parameters:- преобразование № n тип t Параметры: (параметры соответствующие этому виду преобразования)

Finish Read Special Files

//конец TransformatorV1


TransformatorV2

Примерный вид (чтение файла само-собирающейся развертки куба.)

//начало TransformatorV2

Start Read Special Files

Line Loop - 1 замкнутые полигоны, 2 - незамкнутые  ломанные

Projection Vector (x,y,z,q) - вектор проекции

Number Polylines - количество полигонов (ломанных) в объекте

----- Polyline# n Number Vertex v - полигон № n  количество вершин v

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

               x,y,z,q - координаты очередной вершины

               Number Affine - количество аффинных преобразований

                 Affine# n Type t  Parameters: - преобразование № n тип t Параметры: (параметры соответствующие этому виду преобразования)

     

Finish Read Special Files

//конец TransformatorV2


 

Другие параметры

Другие параметры выводятся в течение работы с программой. Период вывода -  прорисовка сцены. Это событие возникает при изменении положения окна, положения камеры и шага.

Когда прорисовка начинается в консольном окне выводиться

Start Draw

Когда прорисовка закончилась

-----------End Draw-----------
=====================

Примерный вид

Projection Vector (x,y,z,q) - текущие четыре координаты вектора проецирования четырехмерного пространства на трехмерное

Q 3D Projection (x,y,z)- три координаты проекции оси q на трехмерное пространство.

Eye (x,y,z) - три координаты положения камеры.

GLOBAL STEP- текущее значение шага.

Matrix of Affine - сформированная матрица аффинного преобразования. Вот второй версии программы матрицы выводятся в количестве общего количество полигонов в объекте, соответственно каждому полигону.   

 



Описание Transformator4D Версия 1

Описание Transformator4D Версия 2

Transformator4D


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

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

 

Hosted by uCoz