Точка пересечения магазина - Matlab - PullRequest
0 голосов
/ 15 ноября 2018

Как мне сохранить точки пересечения многоугольника и линии, чтобы я мог построить ее?

Скрипт ( источник ):

clc;
clear;
close all;

poly1 = polyshape([0.5 0 1 1.5],[1 0 0 2]);
lineseg = [0.5 0.5; 2 2];

[in,out] = intersect(poly1,lineseg);
plot(poly1)
hold on
plot(in(:,1),in(:,2),'b',out(:,1),out(:,2),'r')

1 Ответ

0 голосов
/ 15 ноября 2018

Учитывая, что in содержит точки, образующие отрезки линии внутри многоугольника, а out содержит точки, образующие отрезки линии вне многоугольника, я бы сказал, что любая точка, которая находится в обоих in и out должны быть точкой пересечения.

Чтобы найти эти общие точки, используйте эту другую intersect функцию с опцией 'rows':

pts = intersect(in, out, 'rows');
scatter(pts(:,1), pts(:,2));
...