finding covered regions created by intersecting random lines
4 次查看(过去 30 天)
显示 更早的评论
hey, i am trying to find covered areas by random lines as seen in the figure (i need to produce much complex structures). The intersects (or node points) are kept in a Sparse matrix. (I manually added a red dot as an example)
2 个评论
John D'Errico
2021-3-14
Are you looking only for regions that are entirely enclosed in 2-d by some set of line segments?
回答(1 个)
darova
2021-3-14
Here is the method using bwlabel
clear
clc
I = zeros(100);
% random coordinates of lines
x = rand(20,2)*98+1;
y = rand(20,2)*98+1;
% horizontal and vertical lenghts
dx = abs(diff(x,[],2));
dy = abs(diff(y,[],2));
for i = 1:size(x,1)
n = max(dx(i),dy(i)); % max length
n = round(n);
x1 = linspace(x(i,1),x(i,2),n);
y1 = linspace(y(i,1),y(i,2),n);
ind = sub2ind(size(I),round(y1),round(x1));
I(ind) = 1; % burn line
end
[I1,m] = bwlabel(~I,4); % separate each region
imshow(I1,rand(n,3))
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!