0

我有一个图表G。该图是平面图

我希望找到图表的所有面。我知道构建平面嵌入是找到面(或区域或循环)的方法,这样所有边必须最多由 2 个面共享。

在 C# 中是否有现成的平面嵌入算法实现?商业或开源都可以。

4

2 回答 2

0

经过一番搜索,我发现Boost库中的Planar Face Traversal功能适合我的需求。

然后可以以纯 C 方式包装该函数,并通过 PInvoke 从 C# 调用它。

于 2010-12-05T07:15:48.127 回答
0

在这里,这个 C# 项目说它受到了 Boost 库的启发,并说它支持:

  • 检查给定的无向图是否是平面的
  • 如果给定的图是平面的,则计算平面嵌入
  • 计算给定平面嵌入的面

在我们看来,Boyer-Myrvold 平面度测试:

  • 检查一个图是否是一个大循环,它是平面的,并且嵌入中恰好有两个面
  • 检查一个随机图是否有超过 3n - 6 个顶点,它不是平面的

https://github.com/OndrejNepozitek/GraphPlanarityTesting

于 2021-10-29T14:31:32.417 回答