0

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

只是主要街道延伸成几条较小的街道,空旷的地形填补了大小不一的空隙。

如果有人能指出这种算法的正确方向,我将不胜感激。

谢谢

4

1 回答 1

1

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

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

然而,这个想法在很多方面都存在缺陷。实际上,在许多情况下,您通常不仅有一条向左或向右的小街,而且还有一条小街道穿过一条较大的街道。有时 1 级街道也可以穿过 3 级街道而与 2 级街道没有连接,您必须回溯所有之前的街道。街道并不总是有 90 度转弯,这是最大的问题。

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

于 2012-10-04T22:05:58.700 回答