首页 > 解决方案 > 在 VTK 中创建图形

问题描述

我想使用 VTK 类https://lorensen.github.io/VTKExamples/site/Python/Graphs/ConstructGraph/创建一个图形

def main():
    g = vtk.vtkMutableUndirectedGraph()

    v1 = g.AddVertex()
    v2 = g.AddVertex()

    g.AddEdge ( v1, v2 )
    print ('Number of vertices:', g.GetNumberOfVertices())
    print ("Number of edges:", g.GetNumberOfEdges())

    g.AddEdge ( v1, v2 )
    print ('Number of vertices:', g.GetNumberOfVertices())
    print ('Number of edges:', g.GetNumberOfEdges())
    graphLayoutView = vtk.vtkGraphLayoutView()
    graphLayoutView.AddRepresentationFromInput(g)
    graphLayoutView.ResetCamera()
    graphLayoutView.Render()
    graphLayoutView.GetInteractor().Start()

是定义的函数。但我不太确定如何使用它。

例如,在 networkx 我会做

t = [0, 2, 4, 5, 6, 8, 9, 11, 13, 1, 10, 1, 3, 7]
h= [1, 3, 3, 1, 7, 7, 10, 12, 12, 14, 14, 12, 14, 10]
ed_ls = [(x, y) for x, y in zip(tail, head)]
G = nx.OrderedGraph()
G.add_edges_from(ed_ls)
nx.draw(G)

关于如何在 VTK 中创建相同图表的建议会有所帮助

标签: python-3.xnetworkxvtk

解决方案


您已经找到了正确的 API。只需要使用它。就像是

g = vtk.vtkMutableUndirectedGraph()

# add your 15 vertices
for i in range(15):
    g.AddVertex()

t = [0, 2, 4, 5, 6, 8, 9, 11, 13, 1, 10, 1, 3, 7]
h= [1, 3, 3, 1, 7, 7, 10, 12, 12, 14, 14, 12, 14, 10]

for start, end in zip(t,h):
    g.AddEdge( start, end )

推荐阅读