Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Построение выпуклой оболочки в режиме реального времени / Doc / Построение выпуклой оболочки в реальном времени.doc
Скачиваний:
25
Добавлен:
01.05.2014
Размер:
783.87 Кб
Скачать

Структура программы

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

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

Диаграмму классов смотри в Приложении 1.

Руководство пользователя

Последовательность выполнения действий для обеспечения нормальной работы программного продукта:

1) Скопировать на свой жесткий диск в какой-нибудь каталог (например, C:\Temp) файл CHRealTime . exe (исполняемый файл);

2) После запуска файла CHRealTime.exe на экране появится окно, изображенное на рисунке 1. В левой части этого окна находится область для ввода исходных данных с последующим их изображением. Далее необходимо выбрать пункт меню «Генерация»-> «Распределение в прямоугольнике», «Генерация»-> «Центрическое распределение» или «Генерация»->«Распределение в круге». После этого в левой части окна будет происходить генерация точек и построение для них выпуклой оболочки (см. рисунок 2).

3) Повторно выбрать выбранный до этого пункт меню для прекращения автоматической генерации множества исходных данных и перехода в ручной режим задания множества. При помощи манипулятора «мышь» задать несколько точек (нажимая и отпуская левую кнопку «мыши»). При добавлении каждого нового элемента осуществляется построение выпуклой оболочки для заданного множества исходных данных.

4) Закончить работу с программой (выбрать для этого пункт меню «Исходные данные»->«Выход»).

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

Описание окон

1. Основное окно

При запуске программы на экране отображается окно, изображенное на рис. 1.

Рис. 1

В верхней части данного окна расположена строка заголовка, в которой показано название программы (CHRealTime), за которым следует название открытого файла (при запуске программы по умолчанию это CHReali, где i – количество созданных документов данного приложения). Слева от названия расположен значок (объемные буквы MFC), при нажатии на который появляется меню, позволяющее осуществлять стандартные операции с окном, такие как «Восстановить», «Переместить», «Размер», «Свернуть», «Развернуть» и «Закрыть».

Рис. 2

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

Рис. 3

При выборе пунктов первого меню указанные операции выполняются над приложением, а при выборе пунктов второго меню – над документами приложения.

Далее расположена панель инструментов.

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

В нижней части находится строка состояния.

Кнопки в строке инструментальных средств повторяют некоторые пункты меню.

Описание меню

1. Пункт меню «Исходные данные» содержит следующие подпункты:

1) Новый

Выбор этого пункта позволяет создать новый документ. Новый документ разворачивается на все приложение и скрывает за собой ранее созданные. Чтобы вернуться к ранее созданным, надо нажать на значок, изображенный на рисунке 3. В появившемся меню выбрать пункт «Следующее» или «Свернуть».

2) Открыть

Этот пункт позволяет открыть ранее сохраненный файл с выпуклой оболочкой. В появившемся окне можно выбрать или ввести имя файла, который следует открыть, и нажать кнопку «Открыть». В результате выполнения этих действий пользователь увидит процесс построения выпуклой оболочки, которая была сохранена.

3) Закрыть

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

4) Сохранить

Выбор пункта меню «Сохранить» позволяет сохранить текущий документ с построенной выпуклой оболочкой. Тип файла в этом случае – Точки (.din).

5) Сохранить как

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

6) Сохранить в BMP

Этот пункт позволяет сохранить текущее изображение в графическом файле с расширением .BMP.

7) Выход

Данный пункт предназначен для выхода из программы.

2. Вид

1) Приоритеты вершин

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

2) Рисунок ситуации

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

3) Панель инструментов

Снятие или установка флажка около этого подпункта приводит к сокрытию или отображению панели инструментов.

4) Строка состояния

Снятие или установка флажка около этого подпункта приводит к сокрытию или отображению строки состояния.

3. Генерация

  1. Распределение в прямоугольнике

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

  1. Центрическое распределение

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

  1. Распределение в круге

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

4. Дерево

1) К левому поддереву

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

2) К правому поддереву

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

3) К родительскому узлу

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

  1. К корню дерева

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

5. Пункт меню «Алгоритм» содержит следующие подпункты:

1) Пошаговый режим

Позволяет начать процесс построения выпуклой оболочки в пошаговом режиме.

После выбора этого пункта меню в строке инструментальных средств появляется еще одна кнопка, последовательные нажатия на которую позволяют просмотреть все шаги построения (перестроения) выпуклой оболочки. Просмотр построения выпуклой оболочки при добавлении нового элемента по шагам можно осуществить, если последовательно выбирать пункт меню «Алгоритмы» ► «Следующий шаг».

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

2) Следующий шаг

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

Шаги следующие:

- поиск минимального элемента дерева;

- поиск опорных прямых;

- определение цепочки элементов, которые необходимо удалить;

- перестроение дерева.

Рис. 4

6. Пункт меню «Помощь» содержит следующие подпункты:

1) О программе

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

2) Справка

При выборе данного пункта меню на экран выводится диалоговое окно со справкой, в котором описывается алгоритм построения.

Описание строки инструментальных средств

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

рис.5

Первая кнопка «Новый» (функциональность аналогичная пункту меню «Исходные данные» ► «Новый») позволяет создать новый документ.

При нажатии на следующую кнопку - «Открыть» (аналогично пункту меню «Исходные данные» ► «Открыть») – появляется диалоговое окно для выбора или ввода имени файла, который требуется открыть.

Нажатие следующей кнопки «Сохранить» позволяет сохранить текущий документ. Работает аналогично пункту меню «Исходные данные» ► «Сохранить».

Четвертая кнопка позволяет сохранить текущее изображение в графическом файле с расширением .BMP.Работает аналогично пункту меню «Исходные данные» ► «Сохранить в ВМР».

При помощи пятой кнопки можно автоматически сгенерировать множество данных для построения выпуклой оболочки. При этом используется закон распределения в прямоугольнике. Работает аналогично пункту меню «Генерация» ► «Распределение в прямоугольнике».

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

При помощи седьмой кнопки можно автоматически сгенерировать множество данных для построения выпуклой оболочки. При этом используется закон распределения данных в круге увеличивающегося радиуса. Работает аналогично пункту меню «Генерация» ► «Распределение в круге».

Следующая кнопка – это аналог пункта меню «Алгоритм» ► «Пошаговое построение» . Нажатие на эту кнопку приводит к появлению ранее скрытой кнопки «Следующий шаг» (см. рисунок 4).

При нажатии этих двух кнопок выполняются те же операции, что и при выборе пунктов меню «Алгоритм» ► «Пошаговое построение» и «Алгоритм» ► «Следующий шаг» соответственно.

Последние четыре кнопки позволяют отображать в большем или меньшем масштабе фрагмент дерева. Это: «К левому поддереву» , «К правому поддереву» , «К родительскому узлу» и «К корню» . Все эти кнопки работают аналогично соответствующим пунктами меню «Дерево».

Описание элементов графического изображения выпуклой оболочки

Точка зеленого цвета – минимальный элемент оболочки (имеющий минимальный идентификационный номер).

Точка красного цвета – элемент, соответствующий корню дерева.

Точка синего цвета – все остальные.

Все точки выпуклой оболочки соединены линиями синего цвета – граница выпуклой оболочки.

Описание элементов графического изображения выпуклой оболочки при пошаговом режиме построения выпуклой оболочки

См. «Описание элементов графического изображения выпуклой оболочки», помимо этого:

Последовательность точек, соединенных зелеными линиями - последовательность точек, подлежащих удалению из выпуклой оболочки.

В процессе поиска опорной прямой к элементам выпуклой оболочки из вставляемого элемента проводится прямая красного цвета. Проверяется: опорная она или нет.

Описание элементов графического изображения дерева

Кружок с номером внутри – узел дерева, с указанным идентификационным номером.

Описание элементов графического изображения дерева при пошаговом режиме построения выпуклой оболочки

См. «Описание элементов графического изображения дерева», помимо этого:

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

Перечеркнутый кружок с номером внутри – элемент выпуклой оболочки, который нужно удалить.

Соседние файлы в папке Doc