我对程序生成非常感兴趣,并且想知道可以使用哪些类型的算法来创建一个简单的城市。
只是主要街道延伸成几条较小的街道,空旷的地形填补了大小不一的空隙。
如果有人能指出这种算法的正确方向,我将不胜感激。
谢谢
老实说,这可能会变得非常复杂或非常简单。
如果我只将图像作为参考,那么这个算法似乎在某种程度上模仿了树的视觉结构。您有大街道,较小的街道位于其左侧或右侧。唯一重要的部分是定义该算法的深度(基于图像 3)并定义新的小街可以出现的最大/最小距离。这个算法也应该反过来工作,以便小街道可以连接到更大的街道。非常简化的 Lindenmayer 系统。
然而,这个想法在很多方面都存在缺陷。实际上,在许多情况下,您通常不仅有一条向左或向右的小街,而且还有一条小街道穿过一条较大的街道。有时 1 级街道也可以穿过 3 级街道而与 2 级街道没有连接,您必须回溯所有之前的街道。街道并不总是有 90 度转弯,这是最大的问题。
就像@jakev 已经提到的那样,网格方法也是可能的(许多城市都是这样设计的)。