poly2cw doesn't work for this simple rectangle. I have an example here. Could you please check this code?

Xs{1}=[
0
1
1
1
0
1]
Ys{1}=[1.0000
1.0000
0.0101
0
0
0.5000]
[xr,yr]=poly2cw( Xs{1} , Ys{1} )
for i=1:length(xr)
plot(xr(i),yr(i),'or')
hold on
drawnow
pause
end

 Réponse acceptée

EDIT with more info from comments
It sounds like what you really want is the convex hull of your points since your points, ordered like they are now, do not create a rectangle.
dt = delaunayTriangulation(xr,yr);
hullidx = convexHull(dt);
xa = xr(hullidx);
ya = yr(hullidx);
[xa,ya] = poly2cw(xa,ya);
comet(xa,ya)
If you don't want the convex hull but do want to encourage your shape to be close to convex, then look at alphaShape which will also do a triangulation for you but will allow concavities below a certain size based on alpha.
Original
It starts in the upper left hand corner at (0,1) and moves to (1,1) and then down to (1,0) before completing the triangle. This is indeed clockwise
comet(xr,yr)

3 commentaires

Thank you for the quick response. I think I was not clear about the problem. So I have a bunch of x and y coordinates which represent a polygon, which is a rectangle and its coordinates are the ones in the code. I want to get the x and y in the clockwise order and store them in xr and yr. poly2cw does this task for all polygons but it fails to do so for this rectangle. It does not put point x=1,y=0.5 between point x=1,y=1 and x=1,y=0.
Thank you! That actually works great! Since the geometry is changing in my code in each time step, the geometry is not convex always and I think can use alphashape as you said or boundry.

Connectez-vous pour commenter.

Plus de réponses (1)

Xs=[ 0
1
1
1
0
1] ;
Ys=[1.0000
1.0000
0.0101
0
0
0.5000] ;
[xr,yr]=poly2cw( Xs,Ys) ;
plot(xr,yr)

2 commentaires

Thank you for response. But, maybe I was not clear. If you look at the results in the loop, you will see that the polygone is not clockwise. If you run the code you shared here, it will give you this plot below. This is not a clockwise polygon

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by