Set value for elements within a polygon
4 views (last 30 days)
Show older comments
Hi all,
I am new to Matlab and trying to solve a problem with polygon.
I want to create a random 2-D matrix, let's say 100 by 100 as a domain.
domain=ones(100);
Then by enter the x & y coordinates of the polygon, I would like to draw that polygon and set all the elements inside the polygon to a different value.
xv=[40;50;60;50;40];
yv=[60;50;60;70;60];
plot(xv,yv) %plot the polygon
in=inpolygoon(xq,yq,xv,xv);
domain(in)=2;
I am stuck right here, I dont know how to define xq and yq to complete the inpolygon syntax. Please help :(.
Thank you all.
0 Comments
Accepted Answer
More Answers (1)
Sean de Wolski
on 7 Aug 2021
Something along this line will work too. Note, you may need to deal with x/y v. row/col indexing (swap meshgrid for ndgrid).
domain = ones(100);
[xx,yy] = meshgrid(1:100);
xv=[40;50;60;50;40];
yv=[60;50;60;70;60];
% plot(xv,yv) %plot the polygon
xvec = xx(:);
yvec = yy(:);
in=inpolygon(xx(:),yy(:),xv,yv);
domain(sub2ind([100 100],xvec(in),yvec(in)))=2;
imshow(domain); caxis([0,2])
See Also
Categories
Find more on Elementary Polygons in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!