【问题标题】:Wrapping Voronoi Diagram包装 Voronoi 图
【发布时间】:2019-12-09 09:45:51
【问题描述】:

我正在创建一个程序生成的幻想风格地图,使用 Voronoi 图的单元来确定地形。

在构造板块生成过程中,我意识到在生成过程中具有环绕边缘非常重要,以防止板块在地图边缘扩散。在后续的种子中,如果没有边框环绕,地图的逻辑就会消失。

构造板块:没有包裹,板块边界用黑点表示...

确定板块的一部分是将世界面积的 70% 确定为“海洋”,将另外 30% 确定为“大陆”。

基本上:
地图的边界不必环绕,只要它们可以在主题上合并即可。

我考虑过在边缘周围添加预定义的统一点,并强制将它们相互连接,但必须有更好的方法。我已经去掉了边界点,因为它们与我正在使用的图书馆中的邻居没有很好的联系。

Library I'm using

My code repository 具体来说,makePoints() 函数@line 236

我正在使用 泊松磁盘采样 来生成点。我正在用 AS3 编程,但我可以用任何编程语言或伪代码回答。

问题
如何包装 Voronoi 图,使底部的单元格引用顶部的单元格,左侧的单元格引用右侧的单元格(反之亦然)?

编辑: 期望的结果将是一张类似于现实世界构造板块的图像。看看这些板块是如何覆盖在地图两侧的?这就是我想要的,虽然只有东/西。

【问题讨论】:

  • (1) 显示预期结果的图像。要么模拟它,要么找到最接近的类似图像来说明你想要的结果。 (2) 没有多少人会为您阅读295 lines of code。告诉我们哪个函数需要检查/编辑才能获得您的解决方案。
  • @VC.One 好的,我已经完成了 QoL 编辑

标签: javascript actionscript-3 voronoi procedural-generation


【解决方案1】:

为了解决包裹问题(我决定只包裹左右两侧)我最终做了以下事情:

我首先只填充(使用泊松盘采样)左侧的一条窄带。然后我把这条带复制到地图最右边的边界之外。然后我在两条条带之间填充了生成的空矩形。

之后,只需确保最右边的边界与最左边的点相关联。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    相关资源
    最近更新 更多