我有4个节点是四边形的顶点。
我需要顺时针或顺时针轮廓排序这些顶点。在MATLAB中我只知道函数ispolycw
不起作用,当它没有顺时针排序时,此函数返回1.
是否有人知道我可以对这些顶点进行排序的功能(或任何建议)?
我很感谢你的帮助。
感谢。
答案 0 :(得分:4)
我创建了一个执行此操作的函数。我没有方便的代码,但基本方法是:
所以,如果积分是P(4,2):
C = sum(P) / size(P, 1);
dv = bsxfun(@minus, P, C);
a = atan2(dv(:,2), dv(:,1)) + pi;
[s si] = sort(a);
sortedVertices = P(si, :);
我现在无法测试,但我认为这是正确的(或接近)。