【问题标题】:How do I construct a Minimum Spanning Tree from a list of vertexes, using QuikGraph C#?如何使用 QuikGraph C# 从顶点列表构造最小生成树?
【发布时间】:2021-04-03 16:27:06
【问题描述】:

如何从顶点/节点列表中获取可以与 QuikGraph 一起使用的图形,例如生成最小生成树?

编辑:( 我一直在 QuikGraph wiki https://github.com/KeRNeLith/QuikGraph 上前进和后退,我能找到的每个示例都掩盖了图 creation )

背景

我的程序按程序生成游戏关卡。我的计划是使用 QuikGraph 中的UndirectedGraph 来存储关卡信息,这样我就可以使用库函数对关卡内容进行半智能布局、设置巡逻等。

我的第一个阶段根据可配置的参数在关卡中包含房间。 我的第二阶段试图将房间与最少数量的无意义的走廊连接起来 - 即,将相邻的房间与一个直接的走廊连接起来。稍后我将断开一些连接并添加其他连接。这似乎是一个构建最小生成树的简单案例。

我希望找到某种算法,该算法采用图形节点列表(以及确定任意两个图形节点之间权重/距离的某种方法),并返回边列表或其他内容。我似乎找不到 - 一切似乎都假设您已经有一个边列表,即现有图。

最好的设置方法是什么? “节点之间所有可能的边组合的列表”似乎很疯狂,但我想不出其他任何东西。

注意

我没有使用游戏引擎。输出旨在成为适合人类在设置纸笔角色扮演游戏时使用的静态文本描述。所有的图形和输入处理、物理、声音和网络等等都是多余的......

【问题讨论】:

    标签: c# game-engine minimum-spanning-tree procedural-generation


    【解决方案1】:

    我收到了一些关于如何准备图表的好建议 - 使用 Delaunay 三角剖分例程将建立一个按邻近度连接的图表,并且有效。我在 NuGet 上找到了 Delaunator 库,它似乎做得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多