簡體   English   中英

如何使用簡單的高斯分布算法在平面上分布點?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM