Курсовая работа: Построение трехмерной модели вазы

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

Блок вращения меняет значения углов обзора в соответствии с нажатиями на клавиши позиционирования и вызывает процедуру отрисовки.

3.2 Введенные типы данных и их предназначение

При реализации программы были определены некоторые специализированные типы данных (таблица 1).

Таблица 1 - Типы данных.

Тип Значение Предназначение
T3DPoint record Содержит 3 координаты точки в трехмерном пространстве, координаты точки на экране, номер точки и нормаль к этой точке имеющая три координаты.
TPolygon record Содержит указатели на вершины полигона, то есть содержит переменные типа P3DPoint. нормаль к полигону, номер полигона, цвет и среднюю точку.

3.3 Введенные основные переменные и их предназначение

При реализации программы были определены некоторые переменные (таблица 2).


Таблица 1 - Переменные

Переменная Значение Предназначение
w,v1 array [1.. nPoint] of T3DPoint мировые, видовые координаты вершин
v array [1.. nPoint] of TPoint экранные координаты точек
polygons array [1.. nTPolygon] of TPolygon массив объектов фигуры
teta extended Отвечает за угол поворота относительно оси Y. Имеет фиксированное значение teta:=pi/9.
phi extended Отвечает за угол поворота относительно оси X. Имеет фиксированное значение phi:=pi*4/3.
buf TBitmap Вспомогательная поверхность в ней создается движение сферы
blink_buf TBitmap Вспомогательная поверхность для быстрого закрашивания фоном (хранит в себе фон изображения)
A, B, C, D переменные типа word типа TPolygon (record) Определяют номера вершин четырехугольника в полигоне. Диапазон значений - 0.. nTPolygon
ro real Определяет расстояние от объекта наблюдения до фигуры. Имеет фиксированное значение

3.4 Текстовое описание основных процедур и функций и их блок-схемы

Процедура FormCreate

Задаются углы поворота, радиусы паралеллей, их количество и высота вазы. Вычисляются видовые координаты вершин вазы (пересечения параллелей и меридианов). Рассчитывается количество полигонов. Создаётся фон типа TBitmap, на котором будет рисоваться фигура (рисунок 4).


Процедура FormKeyDown

В этой процедуре отслеживаются нажатые клавиши с последующим выполнений соответствующих команд.

При помощи процедуры KeyDown задается угол поворота объекта. При нажатии клавиш Up, Down, Left, Right объект поворачивается в заданном направлении (рисунок 5).

Рисунок 5 – Блок-схема процедуры FormKeyDown


Процедура Sort

Для каждого полигона высчитывается вектор нормали и приводится к единичной форме; сортировка массива полигонов по минимальным значениям средних координат (рисунок6).

Рисунок 6 – Блок-схема процедуры Sort

Процедура ViewTransformation

В этой процедуре вычисляются видовые и экранные координаты точек, задаются полигоны. В процедуре мировые координаты переводятся в видовые, в свою очередь которые преобразовываются в экранные координаты точек (рисунок7).

Рисунок 7 – Блок-схема процедуры ViewTransformation

Процедура Draw

Поочередная прорисовка полигонов, то есть который грань дальше от нас прорисовывается первой и т.д (рисунок 8).


Рисунок 8 – Блок-схема процедуры Draw

К-во Просмотров: 534
Бесплатно скачать Курсовая работа: Построение трехмерной модели вазы