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