[英]How do I do a simple Gaussian distribution algorithm to distribute points on a plane?
我想要的是将网格变成有点“随机”的瓷砖平面。
我尝试仅将Math.random()分别乘以平面的宽度和高度(在本例中为800/600)。 您所看到的圆圈中的点彼此相交,并且已从场景中删除。
如您所见,它看起来与点的“均匀分布”域相去甚远。 有大洞,同样也可以看到点簇。
我正在寻找一种更好地分布这些点的方法,以使簇和孔的数量最少。 理想情况下,具有的值是任意两点之间的最小距离,同时具有可容纳在该区域中的最大点数。 我可以接受各种近似值,但我只是不想尝试进行贪婪的分布。
无论您使用哪种ecma解决方案,都可以将其转换为Actionscript。
我找到了一个直观的例子。 左边是我得到的,右边是我的目标。
您可以尝试Loyds算法,即质心加权voronoi图。 计算vd,然后计算每个单元的重心。 替换旧的点并冲洗并重复: http : //www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/ 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.