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