Построение изображений ландшафта в реальном времени

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.06.2009
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

3.2.2.2.1 Инструментальная форма «Положение ландшафта»

Рис. 3.2.2.2.1.1. Инструментальная форма «Положение ландшафта»

Данная форма предназначена для управления положением ландшафта в пространстве. Она содержит следующие элементы управления:

· поле ввода "Приращение координат" - предназначено для задания величины шага перемещения ландшафта в экранной системе координат;

· поле ввода "Изменение масштаба" - задание величины процентного изменения коэффициента масштабирования;

· поле ввода "Приращение угла" - задание величины шага поворота ландшафта (задается в градусах);

· поле ввода "Центр вращение" - ввод трех координат центра вращения ландшафта в системе координат ландшафта;

· кнопки группы "Переместить" предназначены для перемещения и масштабирования ландшафта. Эти же действия можно выполнять с помощью мыши или клавиатуры. Мышь: перемещение осуществляется при удерживаемой клавише Shift, для масштабирования используется колесико мыши; Клавиатура: стрелочные клавиши для перемещения, клавиши '+', '-' для масштабирования;

· кнопки группы "Повернуть" используются для вращения ландшафта относительно соответствующих осей. Вращение ландшафта также может производиться с помощью мыши или клавиатуры. Мышь: горизонтальное смещение - поворот относительно оси Z, вертикальное - относительно X, горизонтальное с удерживаемой клавишей Alt - относительно Y; Клавиатура: относительно X - Insert и Delete, Y - Home и End, Z - PageUp и PageDown;

· кнопка "В исходное положение" предназначена для возвращения ландшафта и источника света в то положение, в котором они находились непосредственно после загрузки.

3.2.2.2.2 Инструментальная форма «Визуальные параметры»

Рис. 3.2.2.2.21. Инструментальная форма «Визуальные параметры»

Эта форма предназначена для выбора методов и параметров визуализации ландшафта. Для этого служат следующие элементы интерфейса:

· группа "Вид ландшафта" позволяет выбрать метод построения ландшафта;

· группа "Закраска" определяет метод визуализации треугольников ландшафта;

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

3.2.2.2.3 Инструментальная форма «Параметры источника света»

Рис. 3.2.2.2.3.1. Инструментальная форма «Параметры источника света»

Данная форма предназначена для управления источником света. Присутствуют следующие элементы интерфейса:

· поле ввода "Координаты" позволяет задавать координаты источника света в системе координат ландшафта;

· кнопки группы "Переместить" предназначены для переноса источника света вдоль соответствующих осей. Используется приращение координат, заданное на форме "Положение ландшафта". Перемещение источника возможно также и с помощью мыши и клавиатуры. Мышь (с удерживаемой клавишей Ctrl): горизонтальное перемещение - перемещение вдоль X, вертикальное - вдоль Y; Клавиатура (при удержании Ctrl): стрелочные клавиши - перемещение вдоль соответствующих осей, клавиши '+' и '-' - вдоль оси Z,

· кнопки группы "Повернуть" позволяют вращать источник света относительно соответствующих осей. Используется приращение угла с формы "Положение ландшафта". Вращение источника света предусмотрено также и с помощью клавиатуры (при удержании Ctrl): клавиши Insert и Delete, Home и End, Page Up и Page Down - вращение относительно осей X, Y и Z соответственно;

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

· группа "Вращение по таймеру" позволяет инициировать вращение источника света относительно выбранных осей по таймеру;

3.2.2.2.4 Инструментальная форма «Статистика»

Рис. 3.2.2.2.4.1. Инструментальная форма «Статистика»

Эта форма содержит информацию о программе и текущем ландшафте. В частности, после загрузки ландшафта на нее выводится информация о времени загрузки (в миллисекундах), числе треугольников ландшафта, его линейных размерах (в пикселях), а также о распределении памяти для хранения ландшафта, Z-буфера, буфера кадра.

Кнопка "Определить" позволяет определить число кадров вывода ландшафта, рассчитываемых и выводимых за 1 секунду.

3.2.2.3 Работа программы

3.2.2.3.1 Требования к расположению файлов программы

Исполняемый файл программы - LandscapeProj.exe. В папке, где размещен этот файл, должна находиться пиктограмма LND_Icon.ico. Эта пиктограмма потребуется при регистрации расширения LND - она будет присвоена файлам с этим расширением. Остальные требования аналогичны описанным в Разделе, касающемся программы “Редактор карт”.

3.2.2.3.2 Открытие файлов ландшафтов

Открытие файлов *.lnd возможно тремя способами:

· непосредственно через меню программы с помощью специального диалога;

· двойным щелчком по файлу ландшафта (после регистрации расширения);

· путем перетаскивания файла на форму приложения. После открытия файла просмотр ландшафта осуществляется с помощью уже описанных инструментальных форм.

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

Системные требования программного комплекса создаются главным образом приложением «Просмотр ландшафта», так как оно намного более требовательно к системным ресурсам, чем «Редактор карт». Они таковы:

· операционная система Windows 98/Me/2000/XP/2003 Server;

· процессор c тактовой частотой 400 МГц;

· объем оперативной памяти 64 МБ;

· видеокарта, обеспечивающая графическое разрешение 1024x768 и глубину цвета 24 бита;

· 35 МБ дискового пространства.

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

Тестирование проводилось на компьютере Pentium IV - 2.67 GHz/768 Mb/GeForce4 MX-440, AGP 8x, DDR 128 Mb.

Были проведены следующие исследования:

1) исследование временных характеристик алгоритмов закраски - для 3 реализованных в работе алгоритмов были произведены исследования зависимости скорости работы от числа треугольников ландшафта;

2) исследование временных характеристик загрузки различных типов LND-файлов (текстового и типизированного);

3) исследование результатов использования метода группового кодирования при создании HCL-файлов.

В качестве тестовой карты в исследованиях № 1 и 2 была взята карта “Алтай.hcl”. Размеры карты “Алтай.hcl”: 430x409x39 пикселей (X x Y x Z).

4.1. Исследование № 1

Условия теста: в «Редактор карт» была загружена выбранная карта, далее, с изменяемым от 1 до 20 пикселей, шагом разбиения карты, строились ландшафты. Во время тестов никаких манипуляций с изображением ландшафта не производилось - оно оставалось в том положении, в котором находилось непосредственно после загрузки. Результаты теста приведены в таблице:

Таблица 4.1.1. Результаты исследования № 1

Метод закраски и
число кадров в секунду

Число
треугольников ландшафта

Шаг разбиения
(X x Y)

Однотонная

Гуро

Фонг

3

3

3

350064

1 x 1

8

7

6

87720

2 x 2

12

11

9

38896

3 x 3

17

15

10

22032

4 x 4

21

18

12

14104

5 x 5

24

21

12

9792

6 x 6

27

23

13

7316

7 x 7

30

25

14

5508

8 x 8

33

27

14

4416

9 x 9

35

28

14

3526

10 x 10

37

29

15

2964

11 x 11

39

30

15

2448

12 x 12

40

31

15

2112

13 x 13

41

32

15

1860

14 x 14

42

32

15

1624

15 x 15

43

33

16

1404

16 x 16

44

34

16

1248

17 x 17

46

35

16

1104

18 x 18

46

35

16

1012

19 x 19

49

36

16

924

20 x 20

Для большей наглядности приведем графики зависимости числа кадров, обрабатываемых за 1 секунду, от шага разбиения и числа треугольников ландшафта:

Рис. 4.1.1. Результаты исследования № 1

Из приведенных выше таблицы и диаграммы можно сделать следующие выводы:

· увеличение числа треугольников ландшафта вызывает уменьшение числа кадров, обрабатываемых за 1 секунду;

· закраска по Фонгу требует наибольших вычислительных ресурсов по сравнению со всеми остальными методами, в тоже время скорость ее работы меньше всего зависит от числа треугольников ландшафта;

· при увеличении числа треугольников ландшафта разница в скорости работы рассмотренных алгоритмов уменьшается. Когда карта разбивается на треугольники с шагом 1 x 1, различие между алгоритмами становится минимальным - как по скорости работы, так и по качеству получаемого изображения (однотонная закраска выглядит менее качественно, чем закраска Фонга и Гуро).

4.2. Исследование № 2

При разработке программного комплекса формат файла LND (для хранения информации о треугольниках ландшафта) менялся. На начальной стадии разработки эти изменения касались только добавления новых полей в записи, хранимые в файле, тип файла был текстовым. Но постепенно карты ландшафтов, разрабатываемых в «Редакторе карт», становились все более сложными, они требовали все большей детализации. Поэтому возрастали объемы LND-файлов, При этом время загрузки значительно увеличивалось и становилось совершенно неудовлетворительным. В результате было принято решение изменить тип LND-файла, сделать его типизированным. После этого время загрузки LND-файлов в «Просмотр ландшафта» значительно сократилось. Следует заметить, что скорость записи информации в текстовый и типизированный файлы практически не отличается. Ниже приведены временные характеристики загрузки текстовых и типизированных LND-файлов.

Таблица 4.2.1. Результаты исследования № 2

Шаг разбиения (X x Y)

Тип LND-файла

Текстовый

Типизированный

Объем файла

(Мб)

Время загрузки (с)

Объем файла (Мб)

Время загрузки (с)

1 x 1

0,113

1,469

0,310

0,016

2 x 2

0,140

2,657

0,390

0,016

3 x 3

0,175

4,609

0,480

0,031

4 x 4

0,233

7,140

0,640

0,047

5 x 5

0,313

10,828

0,860

0,047

6 x 6

0,451

19,515

1,240

0,078

7 x 7

0,704

46,968

1,930

0,125

8 x 8

1,210

157,812

3,410

0,187

9 x 9

2,740

662,781

7,700

0,437

10 x 10

10,90

4102,093

30,71

1,922

Для большей наглядности построены графики зависимости времени загрузки файла от его объема:

Рис. 4.2.1. Результаты исследования № 2

Из проведенного исследования можно сделать следующие выводы:

· время загрузки ландшафта из текстового файла значительно больше времени загрузки из типизированного файла (при малых объемах файлов это различие составляет десятки раз, при увеличении объемов оно достигает тысяч (!!!) раз);

· такое отличие времени загрузки, очевидно, объясняется постоянным преобразованием информации из символьного представления в числовое (работой функций Val или StrToFloat) при загрузке из текстового файла, в то время как при чтении из типизированного файла такого преобразования не требуется;

· использование типизированных файлов полностью оправдано за счет колоссального увеличения скорости загрузки ландшафтов, даже несмотря на почти троекратное увеличение объема получаемых LND-файлов.

4.3 Исследование № 3

Как уже говорилось, при создании HCL-файлов, хранящих информацию о разметке карт, используется метод группового кодирования. Этот метод уже был описан выше, поэтому в данном разделе будет приведена информация, доказывающая эффективность использования метода, и выяснена степень этой эффективности.

Демонстрация результатов использования метода была проведена на следующем наборе карт (размеры приведены в пикселях):

· Австралия.hcl (500 x 395);

· Алтай.hcl (430 x 409);

· Африка.hcl (700 x 730);

· Несжимаемый.hcl (200 x 200);

· Тест сглаживания.hcl (400 x 200);

· Южная Америка.hcl (735 x 1125).

Ниже приведена таблица, которая позволила бы выяснить степень сжатия изображения при использовании метода группового кодирования:

Таблица 4.3.1. Результаты исследования № 3

Название карты

Размеры карты

(пиксели)

Размер BMP-файла

(Кб)

Размер HCL-файла

(Кб)

Отношение сжатия

Австралия.hcl

500 x 395

771

36

21:1

Алтай.hcl

430 x 409

687

78

9:1

Африка.hcl

700 x 730

1460

60

24:1

Несжимаемый.hcl

200 x 200

117

156

1:1,3

Тест сглаживания.hcl

400 x 200

312

10

31:1

Южная Америка.hcl

735 x 1125

3150

107

29:1

Из проведенного исследования можно сделать следующие выводы:

· применение метода группового кодирования в данной работе полностью оправдано, поскольку при использовании его в отношении карт изообластей высот, наблюдаются достаточно высокие показатели сжатия (от 9:1 до 29:1, карта «Тест сглаживания» не учитывается, так как она не является реальной картой). Единственным недостатком использования этого метода является незначительное увеличение времени загрузки кодированных файлов в программу «Редактор карт» (это не демонстрировалось в данном исследовании);

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

5. Заключение

Разработанный программный комплекс отвечает всем предъявляемым к нему требованиям. Он обеспечивает возможность создания карт изообластей («Редактор карт») и построения в реальном времени на их основе трехмерных изображений ландшафтов («Просмотр ландшафта»). В нем реализованы все рассмотренные в данной работе алгоритмы машинной графики. Проведены исследования работы алгоритмов на различных наборах исходных данных. Тем не менее, существует множество путей усовершенствования описанного программного комплекса.

Во-первых, построение ландшафта возможно только на основе четко размеченной карты изообластей высот - невозможно использование, например, файла, полученного в результате сканирования некоторой карты. Но подготовка (разметка) карты изообластей вручную - очень трудоемкий процесс. Автоматизация процесса разметки значительно расширила бы возможности программного комплекса.

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

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

6. Список литературы

1. Роджерс Д. Алгоритмические основы машинной графики: пер. с англ.-- М.: Мир, 1989.-- 512 с.: ил.

2. Порев В. Н. Компьютерная графика. - СПб.: БХВ-Петербург, 2002. - 432 с.: ил.

3. Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. СПб.: БХВ-Петербург, 2003. - 560с.: ил.

4. Авдеева С.М., Куров А.В. Алгоритмы трехмерной машинной графики: Учебное пособие. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1996. - 60 с.: ил.

5. Архангельский А.Я. Приемы программирования в Delphi. - М.: ООО «Бином-Пресс», 2003. - 784 с.: ил.

6. http://www.xdev.ru - «Генерация трехмерных ландшафтов».

Оглавление

  • 1. Введение 1
  • 2. Конструкторская часть 2
    • 2.1. Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики 2
      • 2.1.1. Равномерная сетка высот 2
      • 2.1.2. Сглаживание ландшафта 4
      • 2.1.3. Трехмерные аффинные преобразования 5
      • 2.1.4. Проецирование 6
      • 2.1.5. Отображение в окне 7
      • 2.1.6. Алгоритм Z-буфера 8
      • 2.1.7. Освещение 10
        • 2.1.7.1. Однотонная закраска (метод гранения) 11
        • 2.1.7.2. Метод Гуро 11
        • 2.1.7.3. Метод Фонга 13
        • 2.1.7.4. Анализ методов Гуро и Фонга 14
      • 2.1.8. Последовательность действий при визуализации сцены 15
    • 2.2. Типы, структуры данных и функции,
      использованные при реализации программного комплекса 16
      • 2.2.1. Представление исходных данных 16
      • 2.2.2. Программа «Редактор карт» 16
        • 2.2.2.1. Изообласти высоты 16
        • 2.2.2.2. Равномерная сетка высот и ландшафт 16
        • 2.2.2.3. Тип и структура файла для хранения карт изообластей 18
        • 2.2.2.4. Распределение программы по модулям 19
        • 2.2.2.5. Связи между модулями программы 20
      • 2.2.3. Программа «Просмотр ландшафта» 21
        • 2.2.3.1. Процедуры манипуляции изображением ландшафта 21
        • 2.2.3.2. Z-буфер 22
        • 2.2.3.3. Буфер кадра 22
        • 2.2.3.4. Процедуры визуализации ландшафта 22
        • 2.2.3.2. Тип и структура файла для хранения ландшафта 23
        • 2.2.3.3. Распределение программы по модулям 24
        • 2.2.3.4. Связи между модулями программы 25
  • 3. Технологическая часть 26
    • 3.1. Выбор языка программирования 26
    • 3.2. Описание программного комплекса 26
      • 3.2.1. Программа «Редактор карт» 26
        • 3.2.1.1. Общие сведения 26
        • 3.2.1.2. Интерфейс программы 27
        • 3.2.1.3. Работа программы 29
      • 3.2.2. Программа «Просмотр ландшафта» 30
        • 3.2.2.1. Общие сведения 30
        • 3.2.2.2. Интерфейс программы 30
        • 3.2.2.3. Работа программы 33
      • 3.2.3. Системные требования 34
  • 4. Экспериментально-исследовательская часть…. 35
    • 4.1. Исследование № 1 36
    • 4.2. Исследование № 2 38
    • 4.3. Исследование № 3 40
  • 5. Заключение 41
  • 6. Список литературы 42

Подобные документы

  • Группы и назначение алгоритмов машинной графики верхнего и нижнего уровня. Учет свойств поверхности тела. Уравнения линий, эллипсов. Построение окружностей аппроксимацией отрезками. Отсечение нелицевых граней. Принципы построения полутоновых изображений.

    презентация [10,4 K], добавлен 14.08.2013

  • Понятие фрактала, принципы создания изображения. Разработка алгоритма и режимов генерации ландшафта. Описание программы FracLandscapes.exe. в среде разработки Delphi 10. Примеры построения ландшафта с использованием различных режимов и количества изгибов.

    курсовая работа [688,9 K], добавлен 04.05.2014

  • Трехмерное моделирование: улучшение алгоритмов рендеринга и просчета трехмерных изображений. Обоснование выбора алгоритмов. Выбор языка программирования и среды разработки. Структура данных и программного комплекса. Системные требования для работы.

    курсовая работа [263,8 K], добавлен 24.06.2009

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

    дипломная работа [1,5 M], добавлен 22.03.2018

  • Структура данных в динамической памяти, однонаправленные списки. Разработка программного комплекса, предназначенной для хранения и предоставления пользователям данных об улицах города. Реализация данной программы при помощи метода расширения ядра.

    курсовая работа [438,3 K], добавлен 11.01.2016

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.

    курсовая работа [1,5 M], добавлен 21.11.2013

  • Построение схемы алгоритма и программы для создания графика временной функции, работающей в машинном и реальном времени. Выбор методов решения и их обоснование. Значение коэффициентов и временной функции. Реализация временных задержек в программе.

    курсовая работа [6,2 M], добавлен 09.03.2012

  • Современные алгоритмы машинной графики. Алгоритмы построения изображения. Глобальная модель освещения Уиттеда. Выбор и обоснование языка и среды программирования. Вспомогательные классы свойств трехмерных объектов. Условия применения программы.

    курсовая работа [785,7 K], добавлен 24.06.2009

  • Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.

    курсовая работа [532,7 K], добавлен 20.07.2014

  • Разработка программы, представляющей собой простой текстовый редактор, использующий структуру данных для промежуточного хранения редактируемого файла. Функциональное описание разработки. Внутренняя структура двоичного файла нового класса "bin_file".

    курсовая работа [254,6 K], добавлен 26.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.