为了本文的目的,所谓的平面图,或者说平面地图,是指一种可以在平面上(或等价地在球面上)绘制的抽象图形,以及每个顶点处边缘的循环顺序,根据特定的绘制方式确定该附加信息决定了嵌入到球体上(移动顶点和边缘的方式使它们永远不会相交其他顶点/边缘)。我确实希望允许循环和多重边缘。
例如,假设我们按照以下方式构建了一个图。在平面上绘制两个顶点(A和B),并用两条边将它们连接起来。这两条边共同形成一个简单的闭曲线γ。现在添加两个顶点A'和B',并将A和A'连接起来,将B和B'也连接起来。
这个抽象图形将有两个不同的嵌入,具体取决于顶点A'和B'是否被曲线γ分开。
我的问题是:是否有一个Python包实现这样的平面图? 我对能够创建平面图的绘图包感兴趣(当然要尊重嵌入),以及执行一些标准操作(例如给出面数,形成双重图等)。
如果在Python中不存在这样的包,我也会对其他语言的实现感兴趣。
当然有各种包实现了绘制图形和图论算法。但是,我没有在这些包中注意到可以使用已经带有嵌入的图形工作的可能性。非常感谢提供参考。
编辑:让我再详细解释一下。如果两个球面上同一图形的嵌入可以通过球面上的一个同胚相互转化,则它们是等价的。如上所述,通常情况下平面图的嵌入不是唯一的,因此我询问的内容与测试图形是否可平面化并绘制其某些嵌入不同。
有几种组合编码方式可以对这种等价性进行编码。最简单的可能是记录每个顶点边缘的循环顺序(“旋转系统”),但还有许多其他方法。请参见Wikipedia上关于图形嵌入的文章以获取讨论和参考资料。
显然,人们可能希望在这种组合嵌入上执行一些操作,例如查找图形的面,查找边缘/顶点相邻的面,插入面中的顶点,细分边缘,绘制嵌入图像等。
例如,假设我们按照以下方式构建了一个图。在平面上绘制两个顶点(A和B),并用两条边将它们连接起来。这两条边共同形成一个简单的闭曲线γ。现在添加两个顶点A'和B',并将A和A'连接起来,将B和B'也连接起来。
这个抽象图形将有两个不同的嵌入,具体取决于顶点A'和B'是否被曲线γ分开。
我的问题是:是否有一个Python包实现这样的平面图? 我对能够创建平面图的绘图包感兴趣(当然要尊重嵌入),以及执行一些标准操作(例如给出面数,形成双重图等)。
如果在Python中不存在这样的包,我也会对其他语言的实现感兴趣。
当然有各种包实现了绘制图形和图论算法。但是,我没有在这些包中注意到可以使用已经带有嵌入的图形工作的可能性。非常感谢提供参考。
编辑:让我再详细解释一下。如果两个球面上同一图形的嵌入可以通过球面上的一个同胚相互转化,则它们是等价的。如上所述,通常情况下平面图的嵌入不是唯一的,因此我询问的内容与测试图形是否可平面化并绘制其某些嵌入不同。
有几种组合编码方式可以对这种等价性进行编码。最简单的可能是记录每个顶点边缘的循环顺序(“旋转系统”),但还有许多其他方法。请参见Wikipedia上关于图形嵌入的文章以获取讨论和参考资料。
显然,人们可能希望在这种组合嵌入上执行一些操作,例如查找图形的面,查找边缘/顶点相邻的面,插入面中的顶点,细分边缘,绘制嵌入图像等。
是否有Python中实现这些组合图嵌入数据结构的一个或多个?(我注意到图嵌入在一般表面上是有意义的,尽管我主要关心的是球面的情况。)