如何连接多边形中的多个点

时间:2012-10-22 20:06:00

标签: c# .net wpf polygon

我在连接多边形中的多个点时遇到问题。我有一个点列表,我希望结果是这样的:http://imageshack.us/a/img818/6663/punktyx.jpg

1 个答案:

答案 0 :(得分:0)

很抱歉,我不会为此代码吐出代码......

基本上,你知道至少4个点将始终是该多边形的一部分:X中的Min和Max,Y中的Min和Max。如果两个或多个点具有相同的Min或Max,它们将被连接。< / p>

对于以下计算,假设每个点都是Vector3,其中Z为0。

使用MinX和MinY,您需要将它们与其他点连接。执行(MinX - Point),(Point - MinY)的叉积,如果结果向量的Z为+1,则当与MinX和MinY连接时,该点将创建船体形状。在解析所有点之后,您将得到一个可能有效的点集合,每个点都会创建一个凸形。从中他们再次重新获得MinX / MinY并重新分析剩余的点数。如果MinX和MinY是相同的点,你知道它直接链接到其他人。

基本上,你可以为4个quandrants做到这一点。 (MinX / MinY,MinX / MaxY,MaxX / MinY,MaxX / MaxY)

最终会得到一个定义外形或凸包的点列表。从那以后,应该足够简单地连接它们。

可能有一个算法更有效率,只是说我会怎么做。