如何使用简单的高斯分布算法在平面上分布点?

时间:2015-01-25 17:35:49

标签: java javascript c++ algorithm actionscript-3

我所寻求的是将网格变成有点随机的#34;瓷砖平面。

我尝试将Math.random()分别与平面的宽度和高度相乘(在本例中为800/600)。您看到的圆圈是相互交叉的点,已从场景中移除。

正如您所看到的,它看起来距离均匀分布的#34;点的领域。有大洞,同样糟糕,可以看到一簇点。

我正在寻找的是一种更好地分配这些点的方法,以便拥有最少量的聚类和漏洞。理想情况下,具有任意两点之间的最小距离的值,同时具有可适合该区域的最大点数。我对所有类型的近似都很好,我只是不想尝试贪婪的分发。

无论您使用哪种ecma解决方案,我都可以将其转换为Actionscript。

enter image description here

我找到了一个视觉例子。左边是我得到的,右边是我的目标。 enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试Loyds算法,即质心加权voronoi图。计算vd,然后计算每个细胞的重心。更换旧点并冲洗并重复:http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/