如何使用tkinter从文件中读取的坐标创建多边形

时间:2017-12-06 20:34:12

标签: python tkinter

我想显示哥伦比亚特区的图像,我有240个坐标用tKinter创建一个多边形。坐标用空格分隔,我想“拆分”它们并将它们附加到x和y。我到目前为止所附的程序没有运行任何东西,只是说“操作完成”。预期的结果是在一个640x480的窗口中显示DC。

from Tkinter import Tk,Canvas
from PIL import Image,ImageTk
root = Tk()
canvas = Canvas(root, width=640, height=480, bg="white")
f = open("lab312.txt")
points = []
for n in range (1, 240):
   z = f.readline()
   coords= z.split(" ")
   x=float(coords[0])
   y=float(coords[1])
   points.append((12820*x+300,324*y+2198))
root.mainloop()

我收到的结果是一个不是480x640的窗口,它没有任何内容。

1 个答案:

答案 0 :(得分:0)

这是一个使用字符串列表作为输入“文件”的最小工作示例。您的主要问题是将数据文件中使用的坐标转换为相应范围内x和y的画布图坐标,y逐渐减小。

import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=640, height=480, bg="white")
canvas.pack()
f = [
'50 50',
'100 10',
'200 200',
'100 300',
'75 200',
]
points = []
for line in f:
    x, y = map(int, line.split())
    points.extend((x, y))
canvas.create_polygon(*points, fill='red')
root.update()