Plot a polygon without intersection

3 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Walter Roberson
Walter Roberson il 18 Mag 2019
k = boundary(out.');
plot(out(1,k), out(2,k))
... but it will just look like a square.
  1 Commento
skinny pete
skinny pete il 18 Mag 2019
Modificato: skinny pete il 18 Mag 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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Computational Geometry in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by