我在连接多边形中的许多点时遇到问题。我有一个点列表,我希望结果是这样的:http: //imageshack.us/a/img818/6663/punktyx.jpg
问问题
231 次
1 回答
0
对不起,如果我不会为此吐出代码......
基本上,您知道至少 4 个点将始终是该多边形的一部分:X 中的 Min 和 Max,Y 中的 Min 和 Max。如果两个或多个点具有相同的 Min 或 Max,它们将被连接。
对于以下计算,假设每个点都是 Vector3,其中 Z 为 0。
使用 MinX 和 MinY,您需要将它们与其他点连接起来。做 (MinX - Point), (Point - MinY) 的叉积,如果结果向量的 Z 为 +1,则当与 MinX 和 MinY 连接时,该点将创建一个船体形状。解析完所有点后,您会得到一组可能有效的点,每个点都会创建一个凸形。从他们那里,您再次重新获取 MinX/MinY 并重新解析剩余的点。如果 MinX 和 MinY 是同一个点,你就知道它直接链接到其他点。
基本上,您对 4 个象限执行此操作。(MinX/MinY, MinX/MaxY, MaxX/MinY, MaxX/MaxY)
您最终将得到一个定义外部形状或凸包的点列表。从那开始,应该足够简单来连接它们。
可能有一个更有效的算法,只是说我会怎么做。
于 2012-10-22T20:43:11.773 回答