0

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

4

1 回答 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 回答