2015-02-07 57 views
1

我想創建一個簡單的2D城市道路系統的算法。它甚至不會是程序性的,只侷限於一個小電網。創建簡單的城市街道

通過簡單的,我的意思是這樣的: enter image description here

我還以爲只是拍攝從邊緣任意長度線,但不給我連接岬看,我想。

我也嘗試隨機放置節點並將它們與L形線連接,但是這樣也不會產生好的結果。

任何資源,理論或示例代碼的鏈接將不勝感激!

P.S它可以是任何語言。我只需要知道這背後的概念。

回答

1

當生成地形時,例如,山脈,分形結構經常被使用,所以也許可以在這裏使用類似的想法。做一個谷歌搜索「分形地形生成」閱讀更多。對於生成街道佈局的情況,您可以嘗試以下算法(這只是我的頭頂,所以不能保證這實際上看起來不錯):

  • 以矩形區域開始。
  • 在隨機位置放置一個隨機數的小街道,從一個邊到另一個邊。隨機性確保佈局的變化。這個單一迭代的例子可能看起來像你在問題中給出的例子,但更簡單,我猜想1-4行是合理的。
  • 剛剛創建的街道將您的區域劃分爲矩形塊。對每個塊遞歸地應用相同的劃分算法,當然每次選擇不同的隨機數。
  • 3或4次迭代後,您應該有一個相當複雜的街道網絡。您可以使後續迭代中創建的街道變窄一些,以便在城市中擁有幾條主要街道,更多主要街道以及許多小街道。
1

我會創建不同大小的隨機塊,然後將這些塊一起添加,並在每個代表街道的塊之間留出空間。

詳細我會做一個二維數組。例如,將第一個隨機塊放在一個角落中,並將該塊所覆蓋的所有字段設置爲非街道貼圖的ID。用街道磚包圍整個街區。然後再把它放在第一個街區的街道旁,重複下一個街區的過程。這樣做直到陣列中的所有字段都是非街道地磚或街道地磚。

+0

這聽起來像一個有趣的解決方案,應該工作..我會試試看,謝謝! – Chris 2015-02-07 14:58:29

相關問題