Смекни!
smekni.com

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

3.2.1 Программа «Редактор карт»

3.2.1.1 Общие сведения

Программа “Редактор карт” служит для создания ландшафтов на основе плоских карт изообластей. Данные карты могут быть созданы с помощью средств редактирования, предоставляемых “Редактором карт” или загружены в редактор из BMP-файлов (требуемая глубина цвета - 24 бита).

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


3.2.1.2 Интерфейс программы

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

Рис. 3.2.1.2.1. Формы, отображаемые при запуске «Редактора карт»

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

1) Файл:

· Создать - создать новую карту;

· Открыть - открыть уже существующую карту с помощью специального диалога;

· Сохранить - сохранить текущую карту в файл;

· Выход - прекратить работу с программой;

2) Инструменты и окна:

· Обработка карты - определяет видимость инструментальной формы "Обработка карты";

· Запустить "Просмотр ландшафта" - запускает приложение "Просмотр ландшафта", в которое загружается ландшафт, соответствующий текущей карте;

· Зарегистрировать собственное расширение - зарегистрировать в реестре расширение HCL, что даст возможность открывать файлы данного типа двойным щелчком мыши;

· Отменить регистрацию расширения - удалить из реестра информацию о расширении HCL;

3) О программе:

· О программе - вывод формы с некоторой информацией о данной программе;

· Помощь - вывод справочной информации о программе.

Справа от некоторых пунктов меню указаны сочетания клавиш, реализующие действия, соответствующие данному пункту меню.

3.2.1.2.1 Инструментальная форма «Обработка карты»

Рис. 3.2.1.2.1.1. Инструментальная форма «Обработка карты»

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

Шаг разбиения на треугольники по горизонтали и вертикали задается с помощью полей ввода "Шаг по X" и "Шаг по Y". Единица измерения этих величин - пиксель.

Кнопка "Разбить на треугольники" служит для вывода плоских треугольников разбиения на карту.

Кнопка "Обновить карту" удаляет с карты выведенные треугольники.

Кнопка "Обновить ландшафт" предназначена для создания bitmap’а высот и, на его основе, с заданными шагами разбиения, - ландшафта.

Группа "Сглаживание ландшафта" позволяет сгладить ландшафт - придать его очертаниям большую плавность.

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

3.2.1.2.2 Инструменты главной формы

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

Если создается новая карта, то сначала необходимо задать соответствия "Цвет-высота", это делается с помощью кнопки "Добавить цвет" или нажатия клавиши Insert, когда фокус ввода находится на списке цветов. После выполнения этих действий появляется форма "Определение цвета", которая позволяет добавлять или редактировать существующие соответствия "Цвет-высота". Список цветов содержит информацию о существующих соответствиях. Его элементы можно удалять с помощью кнопки "Удалить цвет" или нажатия клавиши Delete, когда фокус ввода находится на списке. При удалении, области, занимаемые удаляемым цветом, заполняются цветом нулевой высоты.

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

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

· "Кисть" - заполнение областей карты;

· "Отрезок";

· "Контурный прямоугольник";

· "Заполненный прямоугольник";

· "Контурный эллипс";

· "Заполненный эллипс".

Рисование этих примитивов осуществляется с помощью мыши при удерживаемой левой кнопке. Цвет рисуемых примитивов определяется с помощью списка цветов и отображается на специальной панели в нижнем правом углу формы.

Кроме описанных, существуют также следующие инструменты:

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

· "Пипетка" - служит для определения цвета произвольного пикселя на карте.

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

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

Исполняемый файл программы - MapEditorProj.exe. В папке, где размещен этот файл должна находиться пиктограмма HCL_Icon.ico. Эта пиктограмма потребуется при регистрации расширения HCL - она будет присвоена файлам с этим расширением. Кроме того, в основной папке MapEditorProj должна находиться программа LandscapeProj, т.к. в противном случае будет невозможна их интеграция. Желательно наличие в основной папке программы каталогов ScreenShots и Landscapes. В каталоге ScreenShots будут помещаться сохраненные изображения ландшафтов (в формате BMP, размер каждого файла ~ 1.23 МБ), создаваемые программой "Просмотр ландшафта". В каталоге Landscapes предполагается хранение файлов ландшафтов(*.lnd) и плоских карт(*.hcl), на основе которых строятся ландшафты.

3.2.1.3.2 Создание карт

Создать карту изообластей можно двумя способами:

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

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

3.2.1.3.3 Сохранение карт

Сохранение производится с помощью специального диалога, в котором определятся путь сохранения файлов. При сохранении создаются 3 файла:

· карта изообластей *.hcl;

· ландшафт *.lnd;

· *.bmp с изображением полученной карты.

3.2.1.3.4 Открытие карт

Возможна загрузка двух типов файлов - BMP и HCL. Загрузка может происходить тремя способами:

· через диалог открытия в самой программе;

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

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

3.2.2 Программа «Просмотр ландшафта»

3.2.2.1 Общие сведения

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

3.2.2.2 Интерфейс программы

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

Рис. 3.2.2.2.1. Формы, отображаемые при запуске «Просмотра ландшафта»

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

1) Файл:

· Открыть - загрузить ландшафт с помощью диалога открытия файлов;

· Выход - прекратить работу с программой;

2) Настройки и окна:

· Положение ландшафта - определяет видимость инструментальной формы "Положение ландшафта";

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

· Параметры источника света - видимость формы "Параметры источника света";

· Статистика - видимость формы "Статистика";

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

· Зарегистрировать собственное расширение - зарегистрировать в реестре расширение LND, что даст возможность открывать файлы данного типа двойным щелчком мыши;

· Отменить регистрацию расширения - удалить из реестра информацию о расширении LND;

3) О программе:

· О программе - вывод формы с некоторой информацией о данной программе;

· Помощь - вывод справочной информации о программе.

Справа от некоторых пунктов меню указаны сочетания клавиш, реализующие действия, соответствующие данному пункту меню.


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

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

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

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

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

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