MATLAB function for finding intersection points between line and multiple polygon
6 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Star Strider
2018 年 12 月 9 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Operating on Diagonal Matrices についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!