Построение синтезированных 3D изображений местности по цифровой карте

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



копируется, таким образом, ее содержимое продублировано в верхней и второй сверху матрице стека. Если добавлено слишком много матриц, будет сгенерирована ошибка.

)voidglPopMatrix (void);

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

6)void glRotate{fd} (TYPE angle, TYPE x, TYPE y, TYPE z);

Умножает текущую матрицу на матрицу, которая поворачивает объект (или локальную координатную систему) в направлении против часовой стрелки вокруг луча из начала координат, проходящего через точку (x, y, z). Параметр angle задает угол поворота в градусах.

7)void glTranslate{fd} (TYPE x, TYPE y, TYPE z);

Умножает текущую матрицу на матрицу, передвигающую (переносящую) объект на расстояния x, y, z, переданные в качестве аргументов функции, по соответствующим осям (или перемещает локальную координатную систему на теже расстояния).

8)void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);

Устанавливает текущий цвет очистки буфера цвета в RGBA - режиме. Если необходимо, значения red, green, blue и alpha приводятся к диапазону [0, 1]. Цвет очистки по умолчанию черный, то есть (0.0,0.0,0.0,0.0).

9)void gluLookAt (GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);

Задает видовую матрицу и умножает на нее текущую матрицу. Выбранная точка обзора задается аргументами eyex, eyey и eyez. Аргументы centerx, centery и centerzзадают любую точку на линии обзора. Аргументы upz, upyи upz определяют, какое направление iитается верхним (то есть направление от дна до вершины объема видимости).

)voidglEnable (GLenumcap); (GLenumcap);

glEnable() включает механизм (GL_DEPTH_TEST, GL_LINE_STIPPLE, GL_LIGHTING и др.), glDisable() выключает его.

11)void glLight{if} (GLenum light, GLenum pname, TYPE param); glLight{if}v (GLenum light, GLenum pname, TYPE *param);

Создает источник, задаваемый параметром light (который может принимать значения GL_LIGHT0, GL_LIGHT1, ..., GL_LIGHT7.В параметре param задается значение или значения, в которые следует установить характеристику pname. Если используется векторная версия функции, param представляет собой вектор величин, а если невекторная, то param - одно единственное значение. Невекторная версия функции может использоваться только для указания параметров, чье значение выражается одним числом.

4РАЗРАБОТКА ВАРИАНТОВ УЧЕТА И ОТОБРАЖЕНИЯ ОБЪЕКТОВОЙ ИНФОРМАЦИИ ЦИФРОВОЙ КАРТЫ МЕСТНОСТИ

Для учета и отображения объектовой информации цифровой карты местности необходимо знать структуру данных об объектах карты, структуру справочных данных, структуру семантики (атрибутов) объекта, структуру вектора привязки 3D-модели объекта, структуру параметров отображения (условного знака) и функции библиотеки OpenGL необходимые для отображения линейных, площадных, точечных, векторных объектов.

4.1Структура данных об объектах карты

Данные об объектах карты располагаются между записями с ключевыми словами DAT и END.

Количество объектов карты указывается после ключевого слова DAT и отделяется одним или несколькими пробелами.

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

4.1.1Структура справочных данных

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

Формат записи имеет вид:

.OBJ классификационный_код_характер_локализации

Классификационный код определяет разновидность объектов.

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

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

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

.KEY собственный_номер_объекта

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

При добавлении на карту новых объектов номер объекта формируется автоматически.

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

Диапазон границ видимости указывается в записи следующего вида:

.GEN нижняя_граница верхняя_граница

Границы видимости указывают диапазон масштабов отображения карты, при которых объект должен быть виден.

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

.GRP номер_группы

Номер группы - это целое число от 0 до 65535.

Номер слоя для объекта заданного в виде графических приметивов должен указываться в записи следующего вида:

.SEG условное_имя_слоя

Условное имя слоя должно соответствовать условному имени слоя в классификаторе уловных знаков.

Признак масштабируе