代码之家  ›  专栏  ›  技术社区  ›  nickponline

为什么networkx在traverse_face中显示不正确的面孔?

  •  0
  • nickponline  · 技术社区  · 4 年前

    我有一个平面图。下图的边和节点为: https://gist.github.com/nickponline/88848dc9cd10722fe8b7c4a2e628292f

    我在用 traverse_face 以蓝色显示红色箭头右侧的面,以绿色显示箭头左侧的面。但我得到的结果是下图。有两件事是错误的,首先方向似乎被翻转了,其次外表面不包括白色三角形(顶部跳过了一个白色面)。在某些情况下,这确实会产生正确的结果,而不是下图。

    enter image description here

    编辑:我的代码是这样的:

    H = nx.Graph( "nodes and edges in gist link" )
    ret, P = nxa.planarity.check_planarity(H)
    
    L = {}
    R = {}
    
    for edge in P.edges:
    
    
        rface = planar.traverse_face(edge[0], edge[1])
        lface = planar.traverse_face(edge[1], edge[0])
    
        R[edge] = rface
        L[edge] = lface
    
    # Plotting edges edge and left and right face ...
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   nickponline    4 年前

    我意识到,当顶点具有几何位置时,平面嵌入可能会改变循环。