Точки пересечения линий или кромок многоугольников
[ возвращает точки пересечения двух полилиний в плоской декартовой системе с вершинами, определенными 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).