【问题标题】:Territory Map Generation领土地图生成
【发布时间】:2008-08-07 00:48:04
【问题描述】:

是否有一种简单的或至少相当直接的方式来生成区域地图(例如风险)?

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

.

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

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

任何建议将不胜感激。

【问题讨论】:

    标签: language-agnostic maps voronoi


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          我实际上正在为我公司的视频游戏处理这类事情。我发现的最有用的信息在这两个链接中:

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

          great explanation of the psudocode and a visual 在 codeGuru.com 上做 Delaunay。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-29
            • 1970-01-01
            • 1970-01-01
            • 2015-08-11
            • 2011-03-29
            相关资源
            最近更新 更多