MATLAB function for finding intersection points between line and multiple polygon
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yogi patel
am 9 Dez. 2018
Kommentiert: Star Strider
am 9 Dez. 2018
Hello everyone,
I am looking for any MATLAB function or logic to find intersection between single scan-line and multiple polygon (one inside another).

Here as you can see into attached figure, I need to find intersection points 1,2,3 and 4. scan-line Y=2 is intersecting both the polygon-1 and 2 at same time. Polygon 2is inside the polygon 1 and the orange lines indicates the way I want to fill this area between two polygon.
MATLAB library "Geom2d" has function named 'intersectLinePolygon(line, poly, varargin)'. But this function takes only single line and one polygon as a input paramter.
So please help me with any other function which can find intersection between single line and multiple polygon.
thank you in advance.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 9 Dez. 2018
One option is to use the inpolygon function:
rctnglx = [1 1 3 3 1]; % Create Data
rctngly = [1 2 2 1 1]; % Create Data
linx = linspace(0, 4); % Create Data
liny = ones(1,numel(linx))*1.5; % Create Data
[in, on] = inpolygon(linx, liny, rctnglx, rctngly); % Points Of Line In Or On Rectangle
leftidx = find(in,1,'first'); % Left Intersection
rightidx = find(in,1,'last'); % Right Intersection
figure
plot(rctnglx, rctngly)
hold on
plot(linx, liny)
plot(linx(leftidx), liny(leftidx), 'or', linx(rightidx), liny(rightidx), 'or')
hold off
ylim([0 3])
Experiment to get this to work with your data.
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!