Точки пересечения для строк или ребер полигона
[xi,yi] = polyxpoly(x1,y1,x2,y2)
[xi,yi,ii] = polyxpoly(___)
[xi,yi] = polyxpoly(___,'unique')
[
возвращает точки пересечения двух ломаных линий в плоской, Декартовой системе, с вершинами, заданными xi
,yi
] = polyxpoly(x1
,y1
,x2
,y2
)x1
, y1
, x2
и y2
. Выходные аргументы, xi
и yi
, содержат x-и y-координаты каждой точки, в которой сегмент первой ломаной линии пересекает сегмент второго. В случае наложения, коллинеарных сегментов, пересечение является на самом деле линейным сегментом, а не точкой, и обе конечных точки включены в xi
, yi
.
[
возвращает массив 2D столбца индексов линейного сегмента, соответствующих точкам пересечения. k-th строка 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)
.