我正在尝试在秋千应用程序上生成随机道路。但是,我无法创建道路,使得它们不会相互过度交叉。我的意思是一条道路不应越过另一条道路,除非它们有一个共同的交叉点。
我尝试使用最小生成树生成随机点并连接它们,但它似乎不起作用。
你有什么想法吗?
答案 0 :(得分:1)
我会首先尝试这个简单的事情:生成一堆随机的道路,只保留那些与你迄今为止找不到的道路相交的道路。这有O(n^2)
运行时,但它易于理解和实现。
在伪代码中:
points = (lots of random points)
roads = empty list
repeat n times:
r = road(pick_random(points), pick_random(points))
if r does not intersect anything in roads list:
add r to roads
这比最小生成树更有优势,它可以为您生成周期,这将使一个更有趣的道路网络。