Особенности компьютерной реализации построения зон видимости объектов с учетом застройки и рельефа местности
Автор: Шлей Михаил Дмитриевич, Рогов Александр Александрович, Матюшичев Константин Викторович
Журнал: Ученые записки Петрозаводского государственного университета @uchzap-petrsu
Рубрика: Физико-математические науки
Статья в выпуске: 2 (131), 2013 года.
Бесплатный доступ
Представлено описание реализации алгоритма построения зон видимости объектов поселений в программной системе при помощи средств объектно-ориентированного программирования. В качестве исходной информации для работы алгоритма используется трехмерная модель поселения. В результате работы алгоритма строятся зоны видимости исследуемого объекта с учетом рельефа и взаимного расположения всех строений поселений. Особенностью реализации данного алгоритма является возможность его работы в обычном и прогрессивном режимах. В обычном режиме сначала выполняются все необходимые расчеты, а затем зоны видимости выводятся пользователю на экран совместно с генеральным планом поселения. В прогрессивном режиме зоны видимости выводятся по мере их расчета: сначала пользователю предоставляется изображение в низком разрешении, затем по мере завершения вычислений изображение на экране детализируется. Предложенный алгоритм реализован в программной системе, которая позволяет решать историко-архитектурные задачи по оценке видимости различных структурообразующих элементов поселений: одиночного строения, архитектурного ансамбля, водоема, а также по оценке замкнутости застройки.
Программный комплекс, историко-архитектурные исследования, моделирование объектов поселений, прогрессивный алгоритм
Короткий адрес: https://sciup.org/14750366
IDR: 14750366
Текст научной статьи Особенности компьютерной реализации построения зон видимости объектов с учетом застройки и рельефа местности
Задача определения на местности зон видимости различных объектов возникает при проведении историко-архитектурных исследований поселений, при проектировании застройки, при выборе места размещения высотных станций сотовой связи и т. д. Построение и использование компьютерных трехмерных моделей поселений существенно упрощает решение данной задачи. Аналогичные модели и алгоритмы используются при выводе на экран трехмерной графики и моделировании интеллектуального поведения персонажей в компьютерных играх. Но при этом существующие методы определения видимости предназначены в первую очередь для определения областей местности, видимых из определенной точки [7], [8]. Например, в геоинформа-ционной системе ArcGIS реализован модуль 3D Analyst, предоставляющий средства для определения видимой зоны поверхности для заданной точки наблюдения [6]. Поэтому в общем виде данные методы трудно применять для анализа
изменения оценки видимости исследуемого объекта с различных мест поселения. Таким образом, задача построения зон видимости исследуемого объекта в трехмерных моделях поселений с использованием количественной оценки видимости остается актуальной.
В данной статье описаны особенности компьютерной реализации алгоритма построения зон видимости природных и рукотворных объектов поселений [5]. Алгоритм реализован в виде программного модуля информационной системы (ИС) комплексного архитектурного анализа планировочной структуры поселений «СКАПС».
ИНФОРМАЦИОННАЯ СИСТЕМА «СКАПС»
Для замены ручного расчета множества объемно-планировочных характеристик планировочной структуры традиционных сельских поселений при проведении историко-архитектурных исследований и повышения точности расчета разработана ИС «СКАПС» [3], [4]. Данная информационная система позволяет проводить комплексные исследования для анализа степени учета структурообразующего влияния солнца, водоемов и других объектов местности при организации застройки у разных народов.
В качестве исходной информации для работы ИС «СКАПС» выступают: генеральный план местности, информация о географической широте поселения и месяце наблюдения, матрица высот местности, исследуемый объект наблюдения. После того как пользователь загрузит в систему необходимую информацию, система автоматически выполнит генерацию рельефа, поиск построек на плане местности, рассчитает продолжительности освещения для всех них и построит зону видимости исследуемого объекта. Кроме этого можно рассчитать ряд статистических показателей по характеристикам освещенности и видимости для поселения в целом, которые можно использовать для сравнения при проведении исследования двух и более поселений.
Система разработана в среде Microsoft Visual Studio с использованием объектно-ориентированного подхода [3], [4].
ОПИСАНИЕ АЛГОРИТМА ПОСТРОЕНИЯ ЗОН ВИДИМОСТИ ОБЪЕКТОВ ПОСЕЛЕНИЙ
Работа алгоритма построения зон видимости опирается на следующие классы.
-
1. Класс «Точка» определяет точки трехмерной модели поселения. Содержит три свойства: X , Y , Z ∈ R , которые определяют координаты точки.
-
2. Класс «Треугольник» определяет элементарный элемент триангуляционной поверхности. Содержит следующие свойства и методы:
-
• A , B , C класса «Точка». Определяют вершины треугольника.
-
• O класса «Точка». Определяет центр масс треугольника. Точка определяется при создании объекта как среднее арифметическое всех вершин треугольника Пf x a + x b + x c У а + У ь + У с z» + z b + z c ) , , .
( 3 3 3 J
-
• Функция getVisibTriangl(N – точка) предназначена для расчета оценки видимости данного треугольника из заданной точки наблюдения N . Результат выполнения функции – вещественное число. Подробное описание реализации данной функции представлено ниже.
-
3. Класс «Постройка» определяет модели построек поселения. Она содержит следующие свойства:
-
• [ Trs ] – массив треугольников, из которых состоит поверхность объекта.
-
• TypeBuild ∈ N – тип постройки. Может принимать два значения: 1 – жилая постройка, 2 – вспомогательная постройка.
-
4. Класс «Рельеф» предназначен для определения модели поверхности рельефа поселения. Содержит массив треугольников – [ Trs ], описывающих поверхность рельефа. В данном классе реализован метод getZp(P – точка) . Предназначен для определения высоты рельефа в точке с координатами X, Y произвольной точки P . Ре-
зультат определения высоты записывается в ко-
-
5. Класс «Объект наблюдения» предназначен для определения модели исследуемого объекта.
Содержит следующие свойства и методы:
•
•
•
ординату Z точки P .
[ Trs ] – массив треугольников, описывающих поверхность исследуемого объекта.
[ Vi j ], i=1..n, j=1..m Vij ∈ R – массив оценок вид , имости исследуе , мого объекта с различных точек местности (где n × m – общее количество наблюдений).
Процедура getVisibObject(trel – рельеф,
[ tbuild ] – массив построек, typeR – целое число, Δ P – целое число, q – целое число) . Процедура предназначена для построения зон видимости исследуемого объекта поселения. Описание реализации данной функции представлено далее.
Теоретическая основа метода расчета оценки видимости исследуемого объекта из заданной точки наблюдения подробно представлена в [5]. Суть данного метода заключается в том, что в качестве оценки видимости исследуемого объ-
екта используется сумма оценок видимости всех видимых треугольников модели данного объекта. Произвольный треугольник ABC считается видимым из точки N , если будет видна точка O , его центр масс. В качестве оценки видимости треугольника используется площадь центральной проекции этого треугольника на плоскость d , перпендикулярную направлению NO и удаленную на расстояние 1 от точки N . Пример построения проекции представлен на рис. 1.

Рис. 1. Построение проекции объекта наблюдения
Метод оценки видимости треугольника из произвольной точки местности реализован при помощи программной функции getVisibTriangl(N – точка) класса «Треугольник». В качестве исходных данных для функции выступают сам объект TR класса «Треугольник» и входной параметр функции – объект N класса «Точка». Координаты вершин треугольника хранятся в свойствах A(xa ,ya ,za), B(xb ,yb ,zb), C(xc ,yc ,zc), координаты точки наблюдения N(xn ,yn ,zn). Далее представлено описание работы функции.
Шаг 1. Уравнение плоскости d , необходимой проекции треугольника ABC и находящейся на расстоянии 1 от точки N и перпендикулярно прямой ON имеет вид
Ad × x + Bd × y + Cd × z +(1 – Ad × x0 – Bd × y0 – Cd × z0)=0 ,
Особенностью реализации данной процедуры является возможность ее работы в обычном и прогрессивном режимах. В первом случае сначала выполняются все необходимые расчеты, а затем зоны видимости выводятся пользователю на экран совместно с генеральным планом поселения. Во втором случае зоны видимости выводятся по мере их расчета: сначала пользователю предоставляется изображение в низком разрешении, затем по мере завершения вычислений изображение на экране детализируется.
ОБЫЧНЫЙ РЕЖИМ РАБОТЫ АЛГОРИТМА
где
, = x n - x o „ _ У п - Уо С _ zn - z o
d on ’ d \on\ ’ Cd on ’
x0 , y0 , z0 –
координаты центра тяжести треугольника ABC .
Шаг 2. Координаты вершины A’(xa’,ya’,za’) проекции треугольника ABC на плоскость d вычисляются следующим образом.
Пусть исследуемая территория ограничена прямоугольником ABCD . Точка O – центр прямоугольника. Суть работы процедуры заключается в разбиении территории на квадраты (с заданной стороной Δ P ), для каждого квадрата выполняется расчет оценки видимости исследуемого объекта Obj . Под оценкой видимости объекта с за-
Xa • = x n
У о' = У п z a ' = z n
+ ( x - x ) A d ( x n - x 0 ) + B d ( y n - y 0 ) + C d ( z n - z 0 ) + 1 ” A d ( x n - X a ) + B d ( У п - У а ) + C d ( z n - Z a )
+ ( ) A d ( x n - X 0 ) + Bd ( y n - y o ) + Cd ( z n - Z 0 ) + 1
VУп A d ( X n - X a ) + B d ( У п - У a ) + C d ( Z n - Z a )
+ ( z - z ) A d ( x n - X 0 ) + B d ( Уп - У 0 ) + C d ( z n - Z 0 ) + 1 П a A d ( x n - x a ) + B d ( У п - У a ) + C d ( z n - z a )
данного квадрата понимается оценка видимости объекта из центра данного квадрата.
Определим, на какое количество квадратов с размером стороны Δ P можно разделить исследуемую территорию ABCD .
Сторона AD делится на
n = 2 x
Аналогичным способом находим координаты остальных вершин B’(xb’,yb’,zb’), C’(xc’,yc’,zc’) .
Шаг 3. Оценка видимости треугольника ABC из точки N равна площади треугольника A’B’C’ , то есть половине длины вектора, полученного как векторное произведение векторов, соответствующих двум сторонам треугольника A’B’C’ .
дратов, сторона AB – на
m = 2 x

где φ – угол между векторами A’B’ и A’C’ .
Шаг 4. Возвращаем оценку видимости треугольника S(A’B’C’) . Выход из функции.
Описанный выше алгоритм является основой алгоритма оценки видимости исследуемого объекта из заданной точки и, соответственно, метода построения зон видимости объекта [5]. Метод построения зон видимости реализован при помощи процедуры getVisibObject(trel – рельеф, [ tbuild ] – массив построек, typeR – целое число, Δ P – целое число, q – целое число) класса «Объект наблюдения».
Исходными данными для работы процедуры является сам объект наблюдения Obj класса «Объект наблюдения», поверхность объекта задается при помощи массива треугольников [ Trs ], а также входные параметры процедуры: данные о рельефе местности, информация обо всех постройках местности, информация о режиме работы алгоритма – typeR (1 – обычный режим, 2 – прогрессивный), длина сторона квадрата для разбиения территории на участки – Δ P , q – количество категорий оценок видимости.
AD
2 xA P
AB
2 xA P
ква-
ква-
дратов. Общее количество квадратов n × m .
Замечание . Полученное число квадратов всегда целое и четное. Сетка квадратов для построения зон видимости строится таким образом, чтобы она была симметрична относительно центра прямоугольника ABCD . В случае если исследуемая территория не разбивается на целое число квадратов, в областях рядом с границей построение зон видимости не выполнятся (на рис. 2 данные области выделены штриховкой).
Координаты всех точек наблюдения определяются массивом M . Координаты точек наблюдения определяются следующим образом:
f ( m - 1 1 ( n - 1 1 _i
Mi i = (x,, У,) = 1 Ox + i - xAP, Оу + j - xAP I i ’ j 1 j 2 2 ,
где i = 1…m, j = 1…n .
После этого при помощи алгоритма расчета оценки видимости объекта определяются все необходимые оценки видимости ( V – массив оценок видимости) исследуемого объекта со всех квадратов, на которые была разбита территория: Vi j=Visib(Mi j) , где Visib(точка) – функция опре-де , ления оце , нки видимости исследуемого объекта из заданной точки [5].
Далее для каждой точки наблюдения определяется степень видимости объекта (по q- балль-
ной шкале) Vqt , 7 =
(E -F )xq i , j min q
Ir - F
. max min ,
для построения и
вывода на экран зон видимости объектов. В за-
висимости от степени видимости объекта каждому квадрату присваивается определенный цвет. Чем выше оценка видимости, тем цвет темнее.
На рис. 2 приведен пример результата работы данного алгоритма. На исследуемой территории расположены две постройки. Территория разбита на квадраты со стороной, равной OO 1 = A P. Для постройки (объект наблюдения), закрашенной темным цветом, построены зоны ее видимости. Наилучшая видимость постройки обеспечивается с ближайших квадратов, которые закрашены более темным цветом. В квадратах с центрами V 11 , V 12 видимость отсутствует, поскольку вторая пос тройка является препятствием для наблюдения исследуемого объекта.

A D
Рис. 2. Пример работы алгоритма построения зон видимости
Обычный режим построения зон видимости объекта удобно применять, когда исследователю известны все необходимые параметры работы для осуществления данной процедуры, и ему нужен только результат. Поскольку в ходе работы алгоритма выполняется большой объем вычислений, то время построения зон видимости занимает достаточно продолжительное время (для поселений большой площади и большом количестве точек наблюдения время работы процедуры может занимать несколько часов). Поэтому, если исследователю необходимо оперативно получить предварительную информацию о видимости объекта, то данный режим работы для него неудобен. Для решения этой проблемы реализован прогрессивный режим работы описываемой процедуры.
ПРОГРЕССИВНЫЙ РЕЖИМ РАБОТЫ АЛГОРИТМА
Суть работы процедуры в прогрессивном режиме заключается в поэтапном разделении территории на квадраты. На первом этапе берутся большие размеры квадратов, таким образом строятся зоны видимости с низким разрешением, затем на следующем этапе большие квадраты разбиваются на девять равных квадратов с меньшими размерами для построения более детальных зон. Процедура разбиения продолжается до тех пор, пока не получим квадраты с размерами, заданными пользователем. Аналогичный подход применяется при передаче изображений через Интернет [2]. Например, при загрузке большого изображения в браузере оно показывается сначала в плохом качестве, а затем по мере загрузки качество улучшается.
Как и в обычном режиме работы, исследуемая территория ABCD разбивается на n х m количество квадратов с заданным размером стороны A P. Определяются точки наблюдения M i , где i = 1^m, j = 1^n . 4
Поскольку с каждым этапом детализации зон видимости квадраты, на которые разбита территория, делятся на девять равных частей, то, зная общее количество точек наблюдения ( n х m ), можно определить количество этапов по следующей формуле: k = log3(min(n,m)) + 1 . Таким образом, количество этапов зависит от того, на сколько раз меньшая сторона прямоугольника ABCD делится на число 3.
Длина стороны квадрата для первого этапа вычисляется следующим образом: O 1 ’O = A P. Зная длину стороны квадрата, найдем необходимые точки наблюдения и их координаты - MUj1 , где i 1 = 1^m 1 , j 1 = 1^n 1 . Для полученных точек наблюдения рассчитываются оценки видимости объекта наблюдения и строятся предварительные зоны видимости. После этого размер стороны квадратов уменьшается в три раза и выполняется новое построение зон видимости. Данный процесс повторяется до тех пор, пока не выполнятся все этапы. На последнем этапе выполняется построение итоговых зон видимости для квадратов с заданной пользователем размером стороны A P.
Для ускорения работы данной процедуры при делении квадрата, построенного на предыдущем этапе, на девять равных квадратов оценка видимости центрального квадрата не пересчитывается заново, поскольку она равняется оценке видимости из центра исходного квадрата.
На рис. 3 приведен пример работы процедуры построения зон видимости в прогрессивном режиме работы за 2 этапа. Вариант а) представляет разделение территории на квадраты для первого этапа. Вариант б) - разделение для второго этапа. Серым фоном отмечены квадраты, для которых не требуется выполнять расчет оценки видимости. Под вариантами в) и г) представлены построенные зоны видимости на различных этапах.
Прогрессивный режим работы процедуры удобно использовать для построения зон видимости на генеральных планах большой площади и большом количестве точек наблюдений. Это особенно удобно, когда пользователь окончательно не выбрал параметры работы алгоритма и не определился с исследуемым объектом, но ему нужна предварительная информация о видимости того или иного объекта.

Рис. 3. Пример прогрессивного режима работы процедуры построения зон видимости
Для ускорения работы алгоритма массив точек наблюдения разбивается на несколько частей, и обработка каждой части запускается при помощи отдельного потока. Данный подход позволяет наиболее полно использовать мощности многоядерных вычислительных систем. После завершения работы представленной выше процедуры выполняется расчет статистических показателей с информацией о процентном соотношении площадей зон видимости для различных степеней видимости. То есть определяется, сколько процентов площади исследуемой территории занимает зона видимости каждого цвета.
Далее приведен ряд задач по оценке видимости различных объектов местности при проведении исследования поселений. В качестве примеров используется реальное сельское поселение Лахта.
ОЦЕНКА ВИДИМОСТИ ОДИНОЧНОЙ ПОСТРОЙКИ
Пример решения задачи построения зон видимости строения поселения описан в статье [5]. Данная задача использовалась для апробации алгоритма оценки видимости объектов. В качестве объекта исследования использовались различные строения как сельских, так и городских поселений. Проверка системы показала, что предложенные алгоритмы можно использовать для построения зон видимости отдельных строений городской или сельской застройки при выполнении историко-архитектурных исследований.
ОЦЕНКА ВИДИМОСТИ АРХИТЕКТУРНОГО АНСАМБЛЯ
Предложенный метод можно использовать для построения зон видимости не только отдельных зданий, но и для нескольких строений – архитектурного ансамбля. В данном случае в качестве исследуемого объекта при работе системы выступает массив треугольников, описывающих поверхности моделей исследуемых строений. В радиусе 30 м от застройки оценка видимости не рассчитывалась для ускорения алгоритма, поскольку для данной области информация о видимости объекта неактуальна. Полученный результат может использоваться при определении наиболее удачных мест для обзора определенной части застройки.
ОЦЕНКА ВИДИМОСТИ ВОДОЕМА
При построении зон видимости водоема в качестве исследуемого объекта выступает массив треугольников, описывающих поверхность водоема.
Следует заметить, что для моделирования поверхности водоема можно использовать треугольники бóльших размеров по сравнению с моделями построек. На рис. 4 приведен результат построения зон видимости водоема. Полученный результат можно использовать для выбора места строительства, которое обеспечивает возможность отличного обзора водоема. Также с помощью построенных зон видимости можно проводить исследование исторических поселений с целью выявления структурообразующих элементов застройки.

Рис. 4. Зоны видимости водоема
ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ РАБОТЫ АЛГОРИТМА
На примере построения зон видимости водоема было проведено исследование временных характеристик работы системы. В качестве исследуемого поселения, как уже говорилось выше, используется реальное поселение Лахта (площадь моделируемой территории 720 x 590 м2). Размер квадратов, для которых определялась оценка видимости, – 1 м. В радиусе 5 м от исследуемого объекта оценка видимости не подсчитывалась. Время работы системы проверялось на различных конфигурациях вычислительной системы. В таблице приведены результаты исследования, из которых хорошо видно, что время работы по определению зон видимости зависит от вычислительной мощности центрального процессора. Наилучший по времени результат обеспечивается на рабочей станции с двумя процессорами, позволяющей одновременно выполнять 16 параллельных процессов.
Временные характеристики работы алгоритма построения зон видимости водоема на различных компьютерах
Параметры процессора |
Количество ядер |
Количество потоков |
Время работы обычного алгоритма |
Время работы прогрессивного алгоритма |
Intel(R) Core(tm) 2 CPU 6420 @ 2.13GHz |
2 |
2 |
2 часа 32 мин |
2 часа 40 мин |
Intel(R) Xeon(R) CPU E5-2603 0 @ 1.80 MHz |
4 |
4 |
1 час 45 мин |
1 час 50 мин |
2 процессора Intel(R) Xeon(R) CPU E5620 @ 2.40 MHz |
8 |
16 |
50 мин |
55 мин |
При решении данной задачи в классическом виде исследователю необходимо выполнить этап полевых работ по сбору информации о видимости исследуемого объекта. Данный этап может занимать от нескольких дней до нескольких недель. Поэтому использование системы даже на относительно «слабых» вычислительных системах позволяет повысить скорость и точность проведения исследований поселений.
ОПРЕДЕЛЕНИЕ ЗАМКНУТОСТИ ЗАСТРОЙКИ
Количественным описанием степени замкнутости архитектурного пространства традиционных сельских поселений занимался В. Ф. Гуляев. В качестве меры замкнутости использовалось отношение занимаемой площади проекции строений к незанятой на мнимом «экране» кругозора наблюдателя, на который проецируются постройки [1]. Данная степень замкнутости определяется для различных точек предполагаемого маршрута. Недостатком этой оценки является невозможность рассчитать замкнутость для определенной зоны поселения.
Используя метод оценки видимости объектов, можно определить замкнутость застройки другим способом. Для этого в качестве исследуемого объекта используем массив K, который включает в себя все строения поселения. Каждое строение поселения описывается набором треугольников μ1, μ2, …, μK. В качестве оценки замкнутости для заданной точки местности используется оценка видимости всех строений ~ K поселения: V.x,y) У У getVisibTriangl(x, y). Оценка i=1 j G ^i замкнутости рассчитывается для различных точек поселения, и с их помощью строятся зоны замкнутости застройки. Достоинством такого метода является то, что зоны замкнутости застройки можно посчитать для всего поселения сразу. На рис. 5 приведен пример построенных зон замкнутости для застройки поселения Лахта. Зоны с наиболее высокой оценкой замкнутости выделены более темным цветом.

Рис. 5. Зоны замкнутости застройки
ЗАКЛЮЧЕНИЕ
Компьютерная реализация предложенного метода построения зон видимости объектов поселений в информационной системе позволяет ускорить процесс исследований, направленных на анализ структурообразующих объектов местности при организации застройки у разных народов.
С помощью примеров показан ряд задач, для решения которых можно использовать разработанную систему: построение зон видимости, как отдельного строения, так и определенной части застройки, построение зон видимости водоема, построение зон замкнутости всей застройки поселения.
* Работа выполнена при поддержке Программы стратегического развития ПетрГУ на 2012–2016 годы в рамках реализации комплекса мероприятий по развитию научно-исследовательской деятельности.
CHARACTERISTIC FEATURES OF COMPUTERIZED VISIBILITY ZONES’ CONSTRUCTION FACTORING IN SETTLEMENT DEVELOPMENT AND RELIEF MODEL
Список литературы Особенности компьютерной реализации построения зон видимости объектов с учетом застройки и рельефа местности
- Гуляев В. Ф. Количественное описание степени замкнутости архитектурного пространства традиционных сельских поселений//Проблемы исследования, реставрации и использования архитектурного наследия Русского Севера: Межвуз. сб. Петрозаводск, 1988. С. 48-54.
- Симаков А. В. Прогрессивная передача изображений через Интернет//Нелинейные проблемы механики и физики деформируемого твердого тела. СПб.: СПбГУ, 2004. Вып. 8. С. 147-161.
- Шлей М. Д. Информационная система расчета характеристик планировочной структуры традиционных сельских поселений//Современные проблемы науки и образования. -электрон. ст. -М.: Издательский Дом «АКАДЕМИЯ ЕСТЕСТВОЗНАНИЯ», 2012. № 6 [Электронный ресурс]. Режим доступа: http://www.science-education.rU/pdf/2012/6/320.pdf
- Шлей М. Д. Система для определения зон видимости объектов поселения [Электронный ресурс] (17 Мb). Петрозаводск, 2012. Свидет. о гос. рег. № 18469 от 24.07.2012.
- Шлей М. Д. Алгоритм построения зон видимости объектов поселений//Вестник Южно-Уральского университета. Сер. «Математическое моделирование и программирование». 2013. Т. 6. Вып. 1. С. 112-123.
- ArcGIS Resource Center [Electronic resource]. Access mode: http://help.arcgis.com/en/arcgisdesktop/10.0/help/
- Fort M. Visibility and proximity on triangulated surfaces [Electronic resource]. Access mode: http://www.tesisenred.net/bitstream/handle/10803/7890/tmfm.pdf?sequence=1
- Nagy G. Terrain visibility//Rensselaer Polytechnic Institute. 1994.