Hi everyone I have the matrix below and 1st row refers x-coordinates and 2nd row refers y-coordinates. When I plot it, I get the polygon that I do not want with several intersections due to array of the elements in the out matrix. You can see in the figure below. So, How can I arrange of the elements' array of this matrix to get smooth polygon. For example, the points should be in this aray (1,4) , (2,4) , (3,4) , (3,5) , (2,5) , (1,5). of course, the first point can be changed.
out = [ 1 1 2 2 3 3;
4 5 4 5 4 5]
pgon = polyshape([out(1,:)], [out(2,:)]);
plot(pgon)
grid on
Screen Shot 2019-05-18 at 1.24.05 AM.png

 채택된 답변

Walter Roberson
Walter Roberson 2019년 5월 18일

0 개 추천

k = boundary(out.');
plot(out(1,k), out(2,k))
... but it will just look like a square.

댓글 수: 1

skinny pete
skinny pete 2019년 5월 18일
편집: skinny pete 2019년 5월 18일
Thank you for your interest. Your answer inspired me to use boundary elements of the matrix. So I changed my code like below.
pgon = polyshape([max(out(1,:)),max(out(1,:)),min(out(1,:)),min(out(1,:))], [min(out(2,:)),max(out(2,:)),max(out(2,:)),min(out(2,:))]);
plot(pgon)
grid on

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Computational Geometry에 대해 자세히 알아보기

태그

질문:

2019년 5월 18일

편집:

2019년 5월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by