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