是否有一种微不足道或至少是中等直接的方式来生成区域地图(例如风险)?
我已经看过去了,我能找到的最好的是对Voronoi图的模糊引用。 Voronoi图的一个例子是:
这些承诺,但我想我没有看到任何直接的渲染方法,更不用说将它们保存在某种形式的数据结构中,以将每个领土视为一个对象。
另一种有希望的方法是填充洪水,但我仍然不确定从这种方法开始的最佳方式。
非常感谢任何建议。
答案 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。
在渲染这些方面 - 我发现的大多数实现都需要按摩来获得你想要的东西,但是因为将它用于游戏地图会导致它们之间有许多点加上线条,它可以这是一个非常简单的事情,可以将其绘制到屏幕上。