领土地图生成

时间:2008-08-07 00:48:05

标签: language-agnostic maps voronoi

是否有一种微不足道或至少是中等直接的方式来生成区域地图(例如风险)?

我已经看过去了,我能找到的最好的是对Voronoi图的模糊引用。 Voronoi图的一个例子是:

here

这些承诺,但我想我没有看到任何直接的渲染方法,更不用说将它们保存在某种形式的数据结构中,以将每个领土视为一个对象。

另一种有希望的方法是填充洪水,但我仍然不确定从这种方法开始的最佳方式。

非常感谢任何建议。

4 个答案:

答案 0 :(得分:7)

我在他们身上看到的最好的参考是Computational Geometry: Algorithms and Applications,它涵盖了Voronoi图,Delaunay三角剖分(类似于Voronoi图,每个都可以转换成另一个),以及其他类似的数据结构。

他们谈论您需要的所有数据结构,但他们没有为您提供实现它所需的代码(这可能是一个很好的练习)。在代码方面,亚马逊搜索会显示书籍Computational Geometry in C,这可能与代码一起提供(虽然因为你被困在C中,你也会想到另一个并用你用的任何语言实现它想)。我也没有这本书的经验,只有第一本。

很抱歉只推荐书籍!我在他们身上看到的唯一合适的在线资源是两个Wikipedia articles,它并没有真正告诉你实现细节。 This link可能会有所帮助。

答案 1 :(得分:3)

为什么不使用基元地图(三角形,正方形),分配国家的起点(“首都”),然后通过向国家添加随机相邻基元来随机扩展国家。

答案 2 :(得分:2)

CGAL 是一个C ++库,其中包含计算几何中使用的数据结构和算法。

答案 3 :(得分:2)

我实际上正在为我公司的视频游戏处理这种东西。我发现的最有用的信息是这两个链接:

Paul Bourke在西澳大学的页面,他在1989年关于Delaunay的论文和一系列实施链接。

在codeGuru.com上进行Delaunay的great explanation of the psudocode and a visual

在渲染这些方面 - 我发现的大多数实现都需要按摩来获得你想要的东西,但是因为将它用于游戏地图会导致它们之间有许多点加上线条,它可以这是一个非常简单的事情,可以将其绘制到屏幕上。