В этом примере показано, как вычислить пересечения произвольных векторных данных, таких как полилинии или многоугольники, с помощью команды polyxpoly функция.
Создайте два пересекающихся многоугольника.
x1 = [10 20 40 50 50 40 20 10 10]; y1 = [20 10 10 20 40 50 50 40 20]; x2 = [30 60 30 0 30]; y2 = [40 50 70 60 40];
Постройте график полигонов.
mapshow(x1,y1) mapshow(x2,y2)

Вычислите точки пересечения этих двух многоугольников. polyxpoly команда находит пересекающиеся сегменты и выполняет интерполяцию для поиска точек пересечения.
[xint,yint] = polyxpoly(x1,y1,x2,y2)
xint = 2×1
45
18
yint = 2×1
45
48
Отображение точек пересечения. Если расстояние между точками велико, может быть некоторая разница между точками пересечения, вычисленными polyxpoly и пересечения, показанные на карте. Это является результатом разницы между прямыми линиями в незапроектированных и спроецированных координатах. Аналогично, могут быть различия между polyxpoly результат и пересечения, предполагающие большие окружности или линии румба между точками.
mapshow(xint,yint,'Displaytype','point','Marker','o')
