领土地图生成

17

有没有一种简单或至少是相对直接的方法来生成领土地图(例如风险)?

我以前查过,最好的结果只是模糊地提到了沃罗诺伊图。沃罗诺伊图的一个例子如下:

here.

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

另一种有前途的方法是泛洪填充,但我仍然不确定从哪里开始使用这种方法最好。

4个回答

7

我看过的最好的关于它们的参考资料是《计算几何:算法与应用》,其中涵盖了沃罗诺伊图、德劳内三角剖分(类似于沃罗诺伊图,两者可以相互转换),以及其他类似的数据结构。

他们讨论了你需要的所有数据结构,但是他们没有给出实现所需代码(这可能是一个不错的练习)。在代码方面,通过亚马逊搜索,可以找到带有代码的书《C语言计算几何》(虽然由于你被困在C语言中,你可能会想要获取另一本书并使用任何你想要的语言进行实现)。我也没有任何这本书的经验,只读过第一本。

很抱歉只有书籍可以推荐!我看到的唯一一个不错的在线资源是两篇 维基百科 文章, 但它并没有告诉你具体实现细节。这个链接 可能会有所帮助。


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

2

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


2

我公司的视频游戏也在处理这种问题。我发现这两个链接非常有用:

保罗·伯克在UWA的页面,关于Delaunay和一系列实现链接的1989年论文。

CodeGuru.com上做Delaunay的伪代码和可视化说明很好。

至于如何渲染它们-大多数我找到的实现都需要调整才能得到所需效果,但由于在游戏地图中使用会有许多点和它们之间的线,因此把它绘制到屏幕上可能是一个非常简单的任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接