paperjam

graph.py

Jun 11th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.29 KB | None | 0 0
  1. #!/bin/env python
  2. from tkinter import *
  3. from tkinter import filedialog
  4.  
  5. def displayGraph(canvas, vertices, edges):
  6.     radius = 3
  7.     for vertex, x, y in vertices:
  8.         canvas.create_text(x - 2 * radius, y - 2 * radius, text = str(vertex), tags = "graph")
  9.         canvas.create_oval(x - radius, y - radius, x + radius, y + radius, fill = "black", tags = "graph")
  10.  
  11.     for v1, v2 in edges:
  12.         canvas.create_line(vertices[v1][1], vertices[v1][2], vertices[v2][1], vertices[v2][2], tags = "graph")
  13.  
  14. def main():
  15.  
  16.     infile = open(filedialog.askopenfilename(),'r')
  17.     #infile = open("./file.txt",'r')
  18.  
  19.     numberOfVertices = int(infile.readline())
  20.     print(numberOfVertices)
  21.  
  22.     vertices = []
  23.     edges = []
  24.     for i in range(numberOfVertices):
  25.         items = infile.readline().strip().split()
  26.         vertices.append([int(items[0]), int(items[1]), int(items[2])])
  27.         for j in range(3, len(items)):
  28.             edges.append([int(items[0]), int(items[j])])
  29.  
  30.     print(vertices)
  31.     print(edges)
  32.  
  33.     infile.close()
  34.  
  35.     window = Tk()
  36.     window.title("Display a Graph")
  37.  
  38.     frame1 = Frame(window)
  39.     frame1.pack()
  40.     canvas = Canvas(frame1, width = 300, height = 200)
  41.     canvas.pack()
  42.  
  43.     displayGraph(canvas, vertices, edges)
  44.  
  45.     window.mainloop()
  46.  
  47. main()
Advertisement
Add Comment
Please, Sign In to add comment