【发布时间】:2013-10-30 15:47:43
【问题描述】:
请注意,我是多边形和空间表示的初学者。
这就是我所拥有的:
我正在开发一个 C# 项目,并且我有一个顶点列表(由纬度/经度定义),代表一个封闭的多边形。多边形可以是凸的也可以是凹的,它不能有任何“洞”。这些顶点是相邻的,但可以是顺时针,也可以是逆时针。
这是我想要的:
我想知道如何确定此列表是顺时针还是逆时针,然后按顺时针对顶点进行排序。我可以自己做排序算法,但我不知道如何确定给定的顶点列表是 CW 还是 CCW。
【问题讨论】:
-
点不是客观地顺时针或逆时针定位的。角度(点之间)可以顺时针或逆时针计算;例如,两点之间的角度可以是 90 或 270;具有一个或另一个值(CW 或 CCW)取决于您当前的计算系统,而不是不可变的现实(它必须是 CCW 或 CCW)。
-
@MatthewWatson 我不确定我是否误解了这个问题;但无法判断两点是顺时针还是逆时针。另一件事(此链接似乎指的是)是您有一组点,所有点都遵循相同的变化规则(CW 或 CCW),您必须找出它们属于哪个选项。
-
@varocarbas OP说他有一个顶点列表,而不是他只有两个顶点。这些顶点定义了一个多边形。您只需要至少 3 个(即一个三角形)就能够确定这些点是按顺时针还是逆时针顺序给出的。
-
如果知道顶点是按CCW顺序排列的,只需将顶点列表倒转成CW...
标签: c# .net sorting polygons vertices