Реферат: Программное обеспечение для генерации псевдотрехмерных объектов Пятаев А. С
Программное обеспечение для генерации псевдотрехмерных объектов
Пятаев А.С.
Институт вычислительного моделирования СО РАН, г. Красноярск
В настоящей работе рассматриваются вопросы создания программного обеспечения для генерации псевдо трехмерных объектов. Актуальность данной задачи связана с тем, что в современных информационно-справочных системах давно стало традицией отображать карту в псевдо трехмерном виде, поскольку наличие этой функции существенно облегчает ориентацию в городском пространстве и визуальный поиск нужных строений.
Как правило в подобных системах используется 2,5-мерная модель геопространственных данных. Это означает, что координатная информация по объектам карты готовится и хранится в плоской системе координат (2D), а сведения о высоте являются атрибутами плоских объектов. На основе этих данных формируется визуальное представление псевдо-3D объектов городской среды – зданий, сооружений, и проч.
Как показывает практика, эта задача формирования псевдо-3D объектов продолжает оставаться актуальной. В частности, многие популярные сегодня программные продукты не решили всех проблем в этой области – «наползание» объектов друг на друга, и т.п. (см. рис. 1).
(а) (б)
Рис. 1. Фрагмент карты ЯрМап (версия 01.09.2008) и ДубльГИС (сентябрь 2008)
В данной работе предложен алгоритм, позволяющий строить корректные псевдо-3D объекты. В программе используется библиотека GKernel для работы с файлами формата MapInfo.
Для однозначности понимания следует определиться с терминами.
^ Объект – единичная область внутри замкнутого контура.
Составной объект – несколько объектов связанных общим атрибутом. Например, многоэтажный дом с 1-этажной пристройкой-магазином – это составной объект. Он воспринимается как одно здание с определенным адресом, но содержит два обычных объекта – дом и пристройка-магазин.
3D-объект – составной объект, полученный в результате работы алгоритма.
^ Составной 3D-объект – несколько 3D-объектов связанных общим атрибутом (см. рис. 1).
На первом этапе все объекты рассматриваются в двумерном случае. При этом используется следующий алгоритм. В цикле осуществляется последовательный перебор всех составных объектов, для каждого из которых обрабатываются все входящие в него объекты. Для каждого объекта определяются его видимые стороны. Для этого сначала строится внешняя нормаль к каждой из его сторон.
Рис. 2. Построение внешней нормали к каждой из сторон объекта
В качестве «наблюдателя» берутся координаты вектора переноса . Направлении вектора показывает направление взгляда наблюдателя. Длина вектора задается атрибутикой текущего объекта (рис. 2).
Произведение векторов и определяет видимость стороны.
Если произведение меньше нуля, то сторона видима.
Далее исходный объект сдвигается на вектор , это будет «крыша» будущего 3D-объекта (рис. 3), а так же формируются новые объекты – видимые «стены» 3D-объекта. Таким образом, на основе исходного объекта формируется 3D-объект, содержащий «крышу» и «стены».
Рис. 3. Сдвиг объекта на вектор
Таким способом обрабатываются все объекты, которые находятся на карте, и в результате создается набор соответствующих 3D-объектов.
Второй этап – удаление пересечений.
Этот этап начинается с проверки на взаимное пересечение всех сформированных «стен» и «крыш» (рис. 4).
Рис. 4. Проверка объектов на пересечение
Для этого мы переходим от двумерной модели к трехмерной.
Рис. 5. Переход к объему
Если объект является «крышей», то z-координата всех вершин объекта – это просто высота здания. Если это «стена», то вершины лежащие в основании будут иметь z-координату равную нулю, а оставшиеся вершины «стены» соответственно будут иметь z-координату равную высоте здания (рис.5).
Далее ищется проекция центра пересечения, полученного в плоском случае, на каждый из объектов в трехмерном случае (рис.6).
Рис.6. Поиск проекции центра пересечения на каждый из объектов в трехмерном случае
Если объект является «крышей», то к координатам центра добавляется z-координата равная высоте здания. Если это «стена», то z-координата вычисляется подстановкой x,y-координат центра пересечения в уравнение плоскости, построенной по трем точкам , , плоскости «стены» (рис.5):
, где
, , ,
Приоритет получает объект с большей z-координатой.
Возвращаемся опять к двумерной модели, и вычитаем от менее приоритетной проекции более приоритетную. При этом изначальный, менее приоритетный объект, удаляется и на его место записывается объект с уже вырезанной общей частью (рис.7).
Рис.7. Промежуточный и конечный результат работы алгоритма
На последнем этапе происходит объединение полученных 3D-объектов в составные 3D-объекты по определенному атрибуту, например по адресу.
еще рефераты
Еще работы по разное
Реферат по разное
Олагает и выстраивание организационных основ взаимодействия этих комиссий (в первую очередь комиссий разных уровней) при проведении выборов на единой территории
17 Сентября 2013
Реферат по разное
Типовая форма договора о полной индивидуальной материальной ответственности
17 Сентября 2013
Реферат по разное
Практическое задание №5 Дайте краткую характеристику природных богатств, материальной базы, инфраструктуры, транспорта и ресурсов гостеприимства России (Египта, Германии, Китая и др.). Для удобства материал оформите в виде таблицы. №
17 Сентября 2013
Реферат по разное
Материально-техническая база
17 Сентября 2013