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

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 18 Mai 2019

0 Stimmen

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

1 Kommentar

skinny pete
skinny pete am 18 Mai 2019
Bearbeitet: skinny pete am 18 Mai 2019
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Computational Geometry finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by