有没有一种简单或至少是相对直接的方法来生成领土地图(例如风险)?
我以前查过,最好的结果只是模糊地提到了沃罗诺伊图。沃罗诺伊图的一个例子如下:
.
这些方法很有前途,但我想我还没有看到任何直接的渲染方式,更不用说将它们保存在某种数据结构中以将每个领土视为一个对象。
另一种有前途的方法是泛洪填充,但我仍然不确定从哪里开始使用这种方法最好。
有没有一种简单或至少是相对直接的方法来生成领土地图(例如风险)?
我以前查过,最好的结果只是模糊地提到了沃罗诺伊图。沃罗诺伊图的一个例子如下:
.
这些方法很有前途,但我想我还没有看到任何直接的渲染方式,更不用说将它们保存在某种数据结构中以将每个领土视为一个对象。
另一种有前途的方法是泛洪填充,但我仍然不确定从哪里开始使用这种方法最好。
我看过的最好的关于它们的参考资料是《计算几何:算法与应用》,其中涵盖了沃罗诺伊图、德劳内三角剖分(类似于沃罗诺伊图,两者可以相互转换),以及其他类似的数据结构。
他们讨论了你需要的所有数据结构,但是他们没有给出实现所需代码(这可能是一个不错的练习)。在代码方面,通过亚马逊搜索,可以找到带有代码的书《C语言计算几何》(虽然由于你被困在C语言中,你可能会想要获取另一本书并使用任何你想要的语言进行实现)。我也没有任何这本书的经验,只读过第一本。
很抱歉只有书籍可以推荐!我看到的唯一一个不错的在线资源是两篇 维基百科 文章, 但它并没有告诉你具体实现细节。这个链接 可能会有所帮助。
我公司的视频游戏也在处理这种问题。我发现这两个链接非常有用:
保罗·伯克在UWA的页面,关于Delaunay和一系列实现链接的1989年论文。
CodeGuru.com上做Delaunay的伪代码和可视化说明很好。
至于如何渲染它们-大多数我找到的实现都需要调整才能得到所需效果,但由于在游戏地图中使用会有许多点和它们之间的线,因此把它绘制到屏幕上可能是一个非常简单的任务。