[嘿,我正在GML(Gamemaker)中尝试一些我们似乎不经常尝试的事情。现在,我正在尝试生成一个voronoi图。我翻译了我在互联网上找到的旧的动作脚本代码,因为其语法与gml和Javascript非常相似。我大部分时间都在使用它,而且值得庆幸的是,脚本允许它画线以可视化Voronoi图,我能够从数组(px,py,ex,ey)中拉出这些顶点。但是我希望能够从这些点形成多边形。
我创建了一个新的种子对象,并给px,py,ex,ey绘制了周围的边缘,但是其中一些不使用整个点来创建多边形。这是下面的图像。
如您通常所见,所有边都构成了voronoi图,但是在仔细检查后,某些“多边形”并未关闭并且不要使用周围的所有环绕点来构成多边形。
Polygon not closing or reciveing surrounding Points
我在过去的三天里一直在尝试解决这个问题,我真的很迷茫,但我只是找不到一种为1个对象生成单元格的方法。这是正常行为吗?
我确实找到了一种方法来产生Delaunay三角剖分,但是即使有了这些三角形和外接点列表,我也不确定如何处理它们。
我在这里阅读了一些JS,Python和C基本代码
https://rosettacode.org/wiki/Voronoi_diagram
我还没有付诸实践,但是即使我生成该图,我如何也可以单独分割每个单元格,我需要为一个种子对象唯一地分割顶点?
您可以遍历三角形的所有边缘,并测试它是否共享相同的边缘。