Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДОКУМЕНТАЦИЯ.doc
Скачиваний:
5
Добавлен:
16.12.2018
Размер:
464.9 Кб
Скачать

4. Экспериментальная часть

4.1. Тестирование программы

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

Таблица 7

Операции

Время выполнения программой

Полигональная модель

Модель, изображаемая линиями

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

Модель, изображаемая линиями в перспективе

Рисование объектов

0.073 с

0.045 с

0.085 с

0.072 с

Пересчет вершин при вращении

0.081 с

0.057 с

0.089 с

0.080 с

4.2. Пример использования программы

Рассмотрим пример изображения трехмерного объекта с учетом перспективы.

Запустите программу. Нажмите клавишу «Задать точки схода».

Используя цифровую клавиатуру, введите значение точек схода и нажмите «Ок».

На экране появится изображение с учетом перспективы.

После завершения действий над объектом нажмите клавишу “Закрыть” для выхода из данного пункта.

Выберите пункт «Закрыть» на главной форме для выхода из программы.

5. Графическая часть

5.1. Функциональная схема системы

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

Модуль _Main.pas

procedure TfrmGL.FormPaint(Sender: TObject); - процедура рисования трёх объектов (телеграфных столбов).

procedure TfrmGL.FormCreate(Sender: TObject); - процедура создания формы. Задаётся начальное положение объектов.

procedure TfrmGL.Timer1Timer(Sender: TObject); - процедура обеспечивающая в реальном времени вращение объектов относительно осей координат и вращение осей координат.

procedure TfrmGL.chbLinesClick(Sender: TObject); - процедура перехода в режим рисования объектов линиями.

procedure TfrmGL.chbCoordsClick(Sender: TObject); - процедурав включения\выключения отображения осей координат.

procedure TfrmGL.btnEndRotateClick(Sender: TObject); - возвращение объектов в начальное положение.

procedure TfrmGL.btnEndRotateCoordClick(Sender: TObject); - возвращение осей координат в начальное положение.

procedure TfrmGL.tbScaleChange(Sender: TObject); - изменение масштаба отображаемых объектов.

procedure TfrmGL.btnPerspectClick(Sender: TObject); - задание координат точек схода для перспективной проекции.

procedure TfrmGL.btnExitClick(Sender: TObject); - выход из программы.

Модуль _Out.pas

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

Модуль _App.pas

procedure TfrmDoPersp.btnDoPerspClick(Sender: TObject); - применение матрицы перспективного преобразования к объектам.

Модуль _Func.pas

procedure Perspective; - задание матрицы перспективной проекции.

procedure DoPerspective(CB: TCube; var CBP: TCube); - процедура пересчёта координат вершин объектов после применения матрицы перспективного преобразования.

function RotZ(CB: TCube; hi: double): TCube; - функция вращения объекта относительно оси Z.

function RotY(CB:TCube; psi:double): TCube; - функция вращения объекта относительно оси Y.

function RotX(CB: TCube; fi: double): TCube; - функция вращения объекта относительно оси X.

procedure DrawCoord(flg: boolean); - процедура рисования осей координат.

procedure DrawPr(Pr: TCube); - процедура рисования проводов.

function Mult(A: TMatrix; B: TMatrix; m1, n1, m2, n2: Integer): TMatrix; - функция перемножения матриц А и В, размерности M1xN1 и M2xN2 соответственно.

procedure DrawCube(CB: TCube; flg: boolean); - процедура рисования параллелепипеда.

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

Интерфейс пользователя представлен на рисунке 2.

Рисунок 2.

5.3. Иллюстрации работы

После запуска программы на экране появляется окно главной формы программы. Его вид представлен на рисунке 3.

Рисунок 3.

После нажатия клавиши «Задать точки схода» на экране появляется окно ввода. Его вид представлен на рисунке 4.

Рисунок 4.

После ввода значений и нажатия клавиши «Ок» на форме «Укажите точки схода» на экран выводится изображение объекта с учетом перспективы. Его вид представлен на рисунке 5.

Рисунок 5.

При нажатии клавиши «Заставка», осуществляется запуск заставки. Ее вид представлен на рисунке 6.

Рисунок 6.