Function poly2cw not working?

조회 수: 5 (최근 30일)
Xiaohan Du
Xiaohan Du 2017년 11월 12일
답변: Veda Upadhye 2017년 11월 15일
Hi all,
Matlab says:
[x2, y2] = poly2cw(x1, y1) arranges the vertices in the polygonal contour (x1, y1) in clockwise order, returning the result in x2 and y2.
However, if I have the (x1, y1) coordinates as:
x1 =
-1 -1 0 0
y1 =
-1 0 -1 0
obviously the poly2cw result should be:
>> x2
x2 =
-1 -1 0 0
>> y2
y2 =
-1 0 0 -1
However, if I run
>> [x2 y2] = poly2cw(x1, y1)
x2 =
-1 -1 0 0
y2 =
-1 0 -1 0
The result is not clockwise? Why?
Or
>> [x3 y3] = poly2ccw(x1, y1)
x3 =
0 0 -1 -1
y3 =
0 -1 0 -1
It's not counterclockwise either.

답변 (1개)

Veda Upadhye
Veda Upadhye 2017년 11월 15일
Hi,
This is actually the expected behavior of the "poly2cw" function. This function expects its input to be a counter clockwise ordered polygon and simply reorders the vertices bottom to top to change the ordering to clockwise.
If you wish to plot points in the clockwise direction, I would suggest using the "convhull" function before the "poly2cw" function. The "convhull" function converts the unordered set of points to counter-clockwise ordered points. You may then use the "poly2cw" to convert them to clockwise order. Here is an example demonstrating this:
K = convhull(x1,y1);
ccx = x1(K);
ccy = y1(K);
[cx,cy] = poly2cw(ccx,ccy);
Documentation for the "convhull" function can be found here:
Hope this helps!
-Veda

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by