Разработка системы моделирования наблюдения за группировкой кораблей

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

Задача нахождения пересечения треугольника и отрезка разбита на несколько этапов:

нахождение точки пересечения прямой, содержащей отрезок, и плоскости, содержащий треугольник.

проверка принадлежности на

йденной точки отрезку.

проверка на принадлежность этой точки треугольнику.

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

2. Технологическая часть

2.1 Выбор языка программирования и среды разработки

В качестве языка реализации программного комплекса был выбран Object Pascal, а средой разработки - Delphi 7. При данном выборе учитывались следующие моменты:

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

Предоставление средств визуального программирования для создания удобного интерфейса.

Обеспечение необходимой функциональности и читаемость кода программы.

Delphi был выбран оптимальной средой реализации как наиболее широко используемый и полнофункциональный компилятор на основе языка Pascal.

2.2 Структуры данных

2.2.1 Структура программного комплекса

На рисунке 2 представлена схема взаимодействия классов программы, на которой отображены основные вызовы. Стрелками с кружочком показаны включения методов в классы, а обычными стрелками - их вызовы.

Класс Фигура

(TShape)

Прорисовать

Рис. 4 Структура программы

2.2.2 Класс объекта

Класс объекта хранит следующие данные о нём:

Точка "Центра объекта" - некоторая точка, перемещаемая при изменении координат объекта. Все координаты вершин вычисляются относительно этой точки.

Точка "Место назначения" - точка, необходимая для указания места назначения при движении объекта.

Цвет объекта - как и все цвета в программе задаётся в формате RGB.

Собственный угол поворота объекта.

Список треугольников, составляющих объект.

Также класс объекта предоставляет следующие методы:

Прорисовка. Выполняется прорисовка изображения в Bitmap и запись данных о глубине в массив Z-величин.

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

Загрузка из файла. Производится чтений фигуры из файла установленного стандарта.

Поворот. Фигура поворачивается на заданные зенитные и азимутальные углы. Все повороты производятся относительно "Центра объекта".

Масштабирование. Расчет производится относительно "Центра объекта".

Поворот при перемещении. Производится расчет угла между текущим направлением объекта и направлением к точке "Место назначения". В случае необходимости происходит изменение угла с учетом заданной скорости поворота объекта.

Перемещение. Производится расчет следующего местоположения на пути к точке "Место назначения" с учетом скорости объекта. Результат присваивается точке "Центра объекта".

2.2.3 Интерфейсный класс

На уровне методов формы реализованы:

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

Очистка экрана. Очищается экран изображения и Z-буфер.

Масштабирование всех объектов с заданным коэффициентом.

2.2.4 Структуры данных

В виде глобальных переменных хранятся:

Массив объектов, включает в себя всё объекты. Динамический массив, изменяется каждый раз, когда мы создаём новый объект.

Источник освещения.

Данные о необходимом количестве просчитываемых кадров.

Сведения о скорости работы программы, необходимые для тестирования скоростных показателей программы.

Данные о полигонах в объектах хранятся в виде односвязных списков полигонов. Каждый полигон - набор из трех вершин.

2.2.5 Независимые процедуры

Заданы следующие независимые процедуры:

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

Скалярное произведение векторов.

Векторное произведение векторов.

Нахождение угла между векторами.

Нахождение третьей координаты точки на треугольнике по её проекции на плоскость экрана.

Преобразование строки заданного формата ввода в треугольник.

Вычисление цвета от затенения.

Вычисление цвета от освещения.

3. Использование системы

3.1 Системные требования

программу добавлена интеллектуальная функция тестирования, которая определяет оптимальные параметры и дает рекомендации по работе с программой. Минимальная конфигурация для работы программы должна отвечать требованиям установки Windows XP.

3.2 Работа с программой

3.2.1 Общие сведенья

Интерфейс программы создавался в расчете на быстрое обучение человека, который никогда ранее не работал с подобными продуктами. Все кнопки объединены в группы элементов. Выделено 3 основные группы: Объекты, Сцена, Освещение. Каждая из групп включает в себя элементы, выполняющие возможные над объектами действия. Конечно, в соответствии с современными стандартами, добавлено выпадающее меню и интерфейс в стиле Windows XP. При выделении объекта, посредством клика на таблице, он перекрашивается в зеленый цвет.

Общий вид окна программы

3.2.2 Панель "Объекты"

Вид панели "Объекты"

При выборе объекта, посредством клика на таблице, поля координат принимают текущие значения для данного объекта, а он выделяется зеленым цветом в отображаемой сцене. Кнопки перемещения позволяют перемещать объект без ввода новых координат. Если же возникла необходимость переместить объект в заданную точку, то необходимо его выделить в таблице и, задав свойства, нажать кнопку "Применить". Если указать точку назначения ("Путь"), то после запуска циклического рендеринга кадров, объект начнет движение в заданном направлении. Кнопка "Загрузить" служит для загрузки объекта из файла. "Удалить" - удаляет выбранный в таблице объект. "-> bmp" - делает снимок экрана.

3.2.3 Панель "Сцена"

Страница:  1  2  3  4  5 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы