如何使用 QuikGraph C# 从顶点列表构造最小生成树?

How do I construct a Minimum Spanning Tree from a list of vertexes, using QuikGraph C#?

我如何从 vertexes/nodes 的列表中获取可以与 QuikGraph 一起使用的图表,例如生成最小生成树?

编辑:( 我一直在 QuikGraph wiki https://github.com/KeRNeLith/QuikGraph 和我能找到的每个例子中找到对图 creation 的注解 )

背景

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

我的第一个阶段根据可配置参数将关卡与房间打包在一起。 我的第二阶段 寻求用最少数量的无用走廊连接房间 - 即,用一个直接的走廊连接相邻房间。我将断开一些连接并稍后添加其他连接。这看起来就像构建最小生成树的简单案例。

我希望找到某种算法,它采用图节点列表(以及确定任意两个图节点之间 weight/distance 的某种方法)和 return 边列表或某物。我似乎找不到 - 一切似乎都假设你已经有了一个边列表,即一个现有的图。

最好的设置方法是什么? “节点之间所有可能的边组合列表”看起来很疯狂,但我想不出别的。

备注

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

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