2011-10-16 123 views
8

我正在尋找一種算法,可以產生像這是什麼形象:如何創建一個隨機路徑?

enter image description here

我讀過有關醉酒步行算法,但他們似乎並不很適合我的需要。我不確定我是否可以通過嚴格修改的醉酒步行算法來實現我正在尋找的目標,或者我是否應該尋找其他一些混亂的算法。

+0

該圖像中的路徑似乎沒有交叉。這對你的應用程序很重要嗎? –

+0

@TedHopp是的,重要的是路徑不會交叉。 – Talon876

+3

你想要什麼叫做自避免Randow Walk,通常縮寫爲SAW。谷歌爲它,你會發現幾種生成方法,因爲它是一個很好的研究和物理,化學和生物學非常重要的問題。 ADN,聚合物和其他現象都與這種事情有關。不要指望找到簡單高效的算法... –

回答

1

既然你想避免自交,隨機遊走將很難做到正確。你可以很容易地把自己畫到一個角落裏。我建議先從一條穿過該區域的線段開始,然後將該線段分割到中間的某個位置,並將中點移動一定比例的線段長度的隨機數。對兩個新的線段遞歸地重複這個過程。如果最終導致兩個新線段中的一個穿過現有線段的中點,則嘗試其他中點。當你的線段很短時(不過你想定義那個線段),停止遞歸。