需要帮助获得Voronoi细胞

问题描述 投票:0回答:1

[嘿,我正在GML(Gamemaker)中尝试一些我们似乎不经常尝试的事情。现在,我正在尝试生成一个voronoi图。我翻译了我在互联网上找到的旧的动作脚本代码,因为其语法与gml和Javascript非常相似。我大部分时间都在使用它,而且值得庆幸的是,脚本允许它画线以可视化Voronoi图,我能够从数组(px,py,ex,ey)中拉出这些顶点。但是我希望能够从这些点形成多边形。

我创建了一个新的种子对象,并给px,py,ex,ey绘制了周围的边缘,但是其中一些不使用整个点来创建多边形。这是下面的图像。

Voronoi Diagram

如您通常所见,所有边都构成了voronoi图,但是在仔细检查后,某些“多边形”并未关闭并且不要使用周围的所有环绕点来构成多边形。

Polygon not closing or reciveing surrounding Points

我在过去的三天里一直在尝试解决这个问题,我真的很迷茫,但我只是找不到一种为1个对象生成单元格的方法。这是正常行为吗?

我确实找到了一种方法来产生Delaunay三角剖分,但是即使有了这些三角形和外接点列表,我也不确定如何处理它们。

delaunay

我在这里阅读了一些JS,Python和C基本代码

https://rosettacode.org/wiki/Voronoi_diagram

我还没有付诸实践,但是即使我生成该图,我如何也可以单独分割每个单元格,我需要为一个种子对象唯一地分割顶点?

javascript python voronoi game-maker delaunay
1个回答
0
投票

您可以遍历三角形的所有边缘,并测试它是否共享相同的边缘。

© www.soinside.com 2019 - 2024. All rights reserved.