Взвешенные скелеты для простых многоугольников Дипломная работа студента 544 группы Игнатьевского Сергея Васильевича Научный руководитель: К.В. Вяткина Рецензент: Н.С. Васильева Санкт-Петербург 2008 Введение Ранние исследования: Прямолинейный скелет (straight skeleton) (Aichholzer et al., 1995). Крыша. Взвешенный скелет (weighted skeleton) (Aurenhammer, 2007). Исследовался подробно только для выпуклых многоугольников. Не было аналога крыши для многоугольника с весами Цели Определение и исследование свойств взвешенного скелета для простых многоугольников. Введение понятия взвешенной крыши, исследование ее свойств и способов построения. Исследование возможности адаптации известных алгоритмов вычисления прямолинейного скелета для случая взвешенного скелета. Реализация одного из алгоритмов вычисления взвешенного скелета. Рассмотрение возможности применения взвешенного скелета на практике. Взвешенный скелет и взвешенная крыша Взвешенный скелет – граф, дуги которого вычерчиваются вершинами линейного фронта в процессе его распространения, при котором ребра многоугольника движутся с разными скоростями (в зависимости от веса). Процесс распространения линейного фронта: ребра многоугольника движутся внутрь, оставаясь параллельными самим себе Скелет простого многоугольника с n вершинами – дерево, имеющее n-2 внутренних узла и 2n-3 дуги, он разбивает многоугольник на n регионов. Взвешенная крыша – результат поднятия скелета в 3D пространство, в соответствии с взвешенным расстоянием от узлов скелета до границы многоугольника Не имеет локальных минимумов (свойство waterfall); определяется однозначно. Алгоритмы построения Адаптированный алгоритм Фелкеля и Обдржалека. Адаптация возможна, с коррекцией шагов алгоритма. Реализован на платформе .Net (С#, VS 2005). Время: O(nm n log n) , где n – число вершин многоугольника, среди которых m невыпуклых. Первый алгоритм Эппштейна и Эриксона. Адаптация возможна. Время: O(n8 5 ) , - неотрицательно. Второй алгоритм Эппштейна и Эриксона. Показана невозможность адаптации. Вероятностный алгоритм Ченга и Виньерона. Показана невозможность адаптации. Реализация модифицированного алгоритма Фелкеля и Обдржалека В рамках работы создано приложение реализующее адаптированный алгоритм Фелкеля и Обдржалека. Технологическая основа: платформа .NET 2.0, Windows Forms, библиотека Microsoft DirectX. Функциональность программы: Рисование простого многоугольника на плоскости. Назначение весов ребрам многоугольника. Загрузка и сохранение многоугольника в файл. Построение и отображение взвешенного скелета для созданного многоугольника. Построение и отображение взвешенной крыши многоугольника в трехмерном пространстве (с использованием классов из библиотек Microsoft.DirectX и Microsoft.DirectX.Direct3D). Моделирование городов и взвешенный скелет Полуавтоматические системы моделирования городов. Моделирование городов по данным аэросъемки сводится к восстановлению зданий по их контурам. Применение взвешенных скелетов для построения крыши здания. Сравнение со старыми методами (использующими прямолинейный скелет). Применение в виртуальной архитектуре: конструирование городов в 3D играх и симуляторах. Заключение Рассмотрены понятия, свойства и алгоритмы построения взвешенного скелета и крыши для простого многоугольника. Рассмотрена одна из возможностей применения взвешенного скелета на практике. Реализован модифицированный алгоритм Фелкеля и Обдржалека для вычисления взвешенного скелета. Дальнейшие исследования: Расширение понятия взвешенного скелета на случай многоугольников с дырками и плоских прямолинейных графов. Разработка более эффективных алгоритмов вычисления взвешенного скелета. Исследование других областей применения взвешенных скелетов и крыш, например, для построения прямолинейного скелета многогранников в трехмерном пространстве.