我有随机排列的任意数量的多边形(在这种情况下为十六进制),但它们都接触另一个十六进制。
每个单独的十六进制有 6 个 x,y 顶点。顶点以所有六边形而闻名。
谁能指出我将所有六边形组合成一个多边形的算法的方向?本质上,我只是在寻找一个函数,它可以吐出一组顶点位置,这些顶点位置的排序方式是,在从一个到下一个绘制线条时,它会形成多边形。
到目前为止,这是我的方法:
- 为所有六边形创建所有顶点的数组。
- 确定顶点在数组中出现的次数
- 如果顶点在数组中出现 3 次以上,则从数组中删除顶点。
- 如果顶点在数组中出现 2 次,则删除其中之一。
下一步很棘手。我正在使用画布绘制这些多边形,这实际上涉及从一个顶点到下一个顶点绘制一条线。所以最终数组中顶点的顺序很重要。不能随意排序。
另外,我不是在寻找“凸包”算法,因为它不会正确绘制多边形。
是否有任何功能可以做这样的事情?我是在正确的轨道上还是有更好更有效的方法?