简单的程序生成2D城市的算法?

时间:2012-10-04 21:21:04

标签: c++ algorithm

我对程序生成非常感兴趣,并且想知道可以使用哪些类型的算法来创建一个简单的城市。

只是主要的街道蔓延到几条较小的街道,空旷的地形填满了不同大小的空隙。

如果有人能指出我正确的方向进行这种算法,我真的很感激。

由于

1 个答案:

答案 0 :(得分:1)

说实话,这可能会变得非常复杂或非常简单。

如果我只把图像作为参考,那么这个算法似乎在某种程度上模仿了树的视觉结构。你有很大的街道,小街道往左边或右边。唯一重要的部分是定义该算法的深度(基于图像3)并定义新的街道可以出现的最大/最小距离。该算法也应该相反,以便小街道可以连接到更大的街道。非常简化Lindenmayer-System

然而,这个想法在很多方面存在缺陷。实际上,你往往不只是左侧或右侧的街道,在许多情况下,你有一条小街道越过更大的街道。有时,1级街道也可以穿过3级街道而不连接2级街道,您必须回溯所有以前的街道。街道并不总是有90度转弯,这是最大的问题。

就像@jakev已经提到的那样,网格方法也是可能的(许多城市都是这样设计的)。