Точки пересечения для линий или ребер многоугольника
[
возвращает точки пересечения двух ломаных линий в плоской, Декартовой системе, с вершинами, заданными xi
,yi
] = polyxpoly(x1
,y1
,x2
,y2
)x1
, y1
x2
и y2
. Выходные аргументы, xi
и yi
, содержите x-и y-координаты каждой точки, в которой сегмент первой ломаной линии пересекает сегмент второго. В случае наложения, коллинеарных сегментов, пересечение является на самом деле линейным сегментом, а не точкой, и обе конечных точки включены в xi
, yi
.
[
возвращает массив 2D столбца индексов линейного сегмента, соответствующих точкам пересечения. K-ая строка xi
,yi
,ii
] = polyxpoly(___)ii
указывает, какие полилинейные сегменты дают начало точке пересечения xi(k)
, yi(k)
.
Чтобы помнить, как эти индексы работают, только думайте о сегментах и вершинах как разделы забора и сообщения. i-th раздел забора соединяется, i-th отправляют на (i +1)-th сообщение. В общем случае разрешение i и j обозначает скалярные значения, состоявшие k-th строка ii
, пересечение, обозначенное той строкой, происходит, где i-th сегмент первой ломаной линии пересекает j-th сегмент второй ломаной линии. Но когда пересечение падает точно на вершину первой ломаной линии, затем i является индексом той вершины. Аналогично со второй ломаной линией и индексом j. В случае пересечения в i-th вершина первой линии, например, xi(k)
равняется x1(i)
и yi(k)
равняется y1(i)
. В случае пересечений между вершинами, i и j может быть интерпретирован можно следующим образом: сегмент, соединяющий x1(i)
, y1(i)
к x1(i+1)
, y1(i+1)
пересекает сегмент, соединяющий x2(j)
, y2(j)
к x2(j+1)
, y2(j+1)
в точке xi(k)
, yi(k)
.
Если интервал между точками является большим, пересечения, вычисленные polyxpoly
функционируйте и пересечения, показанные на отображении карты, могут отличаться. Это - результат различий между прямыми линиями в неспроектированных и спроектированных координатах. Точно так же могут быть различия между polyxpoly
результат и пересечения, которые принимают большие круги или локсодромы между точками.