Вычислите пересечения векторных данных

В этом примере показано, как вычислить пересечения произвольных векторных данных, такие как ломаные линии или многоугольники, с помощью 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')