就本文而言,平面图或平面图是指可以在平面上(或等效地在球体上)绘制的抽象图,以及每个顶点的边的圆形顺序到特定的此类绘图。这个额外的信息决定了球体上的嵌入(直到移动顶点和边,使其永远不会与任何其他顶点/边相交)。我确实想允许循环和多个边缘。
例如,假设我们已经构建了如下图。在平面中绘制两个顶点(A 和 B),以及连接这两个顶点的两条边。两条边共同形成一条简单的闭合曲线 γ。现在再添加两个顶点,A' 和 B',并将 A 和 A' 与一条边连接,同时将 B 和 B' 连接起来。
这个抽象图将有两个不等价的嵌入,根据顶点 A' 和 B' 是否被曲线 \gamma 分开。
我的问题是:有没有实现这种平面图的 Python 包?
我对一个可以创建平面图绘图(当然是关于嵌入)以及执行一些标准操作(例如,给出面数,形成对偶图等)的包感兴趣
如果 Python 中不存在这样的包,我也会对其他语言的实现感兴趣。
当然,有各种包可以实现图形的绘制和图形理论算法。但是,我没有注意到在任何这些中使用已经带有嵌入的图形的可能性。参考将不胜感激。
编辑。让我进一步详细说明。如果球体与自身的同胚相关,则同一图在球体中的两个嵌入是等价的。如上所述,平面图的嵌入通常不是唯一的,所以我所要求的与测试图形的平面性并绘制一些嵌入不同。
有几种组合方式可以对嵌入进行编码,直到达到这个等价。可能最简单的方法是记录每个顶点的边的循环顺序(“旋转系统”),但还有很多其他的。有关讨论和参考,请参阅Wikipedia 上有关图嵌入的文章。
人们可能希望对这种组合嵌入执行一些明显的操作,例如找到图形的面,找到边/顶点相邻的面,在面中插入顶点,细分边,绘制图片嵌入等
是否有一种或几种表示 Python 中可用的组合图嵌入的数据结构的实现?(我注意到图嵌入在一般表面上是有意义的,尽管我主要对球体的情况感兴趣。)