Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОГИС.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.09 Mб
Скачать

13. Пространственный анализ векторных моделей

1.Алгоритмы вычислительной геометрии

1.1. Пересечение линий

Операция нахождения точки пересечения линий является одной из базовых в ГИС–анализе, так как она используется в ряде операций геопроцессинга и в оверлейных операциях.

Исходным является уравнение прямой, известное из аналитической геометрии:

y = kx + b ( 5.2.1) где:

b – отрезок, отсекаемый прямой на оси OY;

k – угловой коэффициент прямой k = tgb;

β – угол между положительным направлением оси OХ и прямой.

Рис. 5.2.1 – Точка пересечения: а) внутри отрезков прямых; б) снаружи

отрезков прямых.

Две линии задаются уравнениями

Совместное решение этих двух уравнений позволяет найти координаты точки пересечения этих двух линий:

В оверлейных операциях при определении принадлежности точки полигону учитывается специальный случай, когда одна линия параллельна выбранной оси, например, оси ОХ. В этом случае k = 0, а координаты точки пересечения таких двух линий будут равны:

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

является последовательная проверка пересечения каждого сегмента первой линии с каждым сегментом второй линии. Сложность э того алгоритма пропорциональна произведению n1 * n2. Она может быть уменьшена, если предварительно проверять на пересечение экстенты (Extent – минимальный ограничивающий прямоугольник) сегментов и полилиний, представленные на рис.5.2.2.

Рис. 5.2.2 - Экстенты сегментов и полилинии

Второй метод, использованный в ГИС ArcInfo, основан на разбиении полилинии на секции, в которых линия монотонно возрастает или убывает по x и по y. Разбиение происходит в точках локального минимума или максимума по x или по y. Горизонтальная или вертикальная линия пересекает такую секцию только в одной точке.

1.2. Определение площади полигона

Для определения площади полигона, заданного последовательностью вершин, чаще всего применяется алгоритм Симпсона (Simpson Thomas), основанный на разбиении многоугольника на трапеции, ограниченные линейными сегментами

границы полигона, перпендикулярами, опущенными из вершин сегмента на ось x, и осью x (Рис. ). Для сегмента, соединяющего вершины (xi ,yi) и (xi+1,y i+1), площадь такой трапеции равна

Площадь полигона равна сумме площадей трапеций для всех сегментов полигона.

Для сегментов, у которых xi > xi+1, площадь получается отрицательной. Следует заметить, что полигон – замкнутая фигура, поэтому нужно учитывать сегмент, соединяющий последнюю вершину с первой.

Рис. 5.2.4 - Вычисление площади полигона путем разбиения на

трапеции.

Формула вычисления площади полигона может быть преобразована к следующему виду:

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

самопересечения границ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]