我有许多任意的多边形(在这种情况下是六边形),它们随机排列,但它们都与另一个六边形相接触。
每个单独的六边形都有6个x,y顶点。所有六边形的顶点都已知。
有没有人可以指导我一个算法,将所有六边形合并成单个多边形?本质上,我只是在寻找一个函数,该函数输出一个顶点位置数组,以一种使得从一个顶点到下一个顶点绘制线条时,形成多边形的方式进行排序。
到目前为止,我的方法如下:
1.创建所有六边形的所有顶点的数组。
2.确定顶点在数组中出现的次数。
3.如果顶点在数组中出现3次或更多次,则从数组中删除该顶点。
4.如果顶点在数组中出现2次,则删除其中之一。
然而,下一步十分棘手。我使用画布来绘制这些多边形,这本质上涉及从一个顶点到下一个顶点绘制线条。因此,最终数组中的顶点顺序很重要。它不能任意排序。
此外,我不需要“凸包”算法,因为那样无法正确绘制多边形。
是否有任何函数可以做到这一点?我是否在正确的轨道上,还是有更好、更有效的方法?
每个单独的六边形都有6个x,y顶点。所有六边形的顶点都已知。
有没有人可以指导我一个算法,将所有六边形合并成单个多边形?本质上,我只是在寻找一个函数,该函数输出一个顶点位置数组,以一种使得从一个顶点到下一个顶点绘制线条时,形成多边形的方式进行排序。
到目前为止,我的方法如下:
1.创建所有六边形的所有顶点的数组。
2.确定顶点在数组中出现的次数。
3.如果顶点在数组中出现3次或更多次,则从数组中删除该顶点。
4.如果顶点在数组中出现2次,则删除其中之一。
然而,下一步十分棘手。我使用画布来绘制这些多边形,这本质上涉及从一个顶点到下一个顶点绘制线条。因此,最终数组中的顶点顺序很重要。它不能任意排序。
此外,我不需要“凸包”算法,因为那样无法正确绘制多边形。
是否有任何函数可以做到这一点?我是否在正确的轨道上,还是有更好、更有效的方法?