python Tkinter(3d)中长方体的坐标
我正在用PythonTk制作一个3d框,但是当框在角落屏幕和窗口全屏中绘制时,会循环并创建多个 我不知道为什么会这样,应该只有一个盒子 为什么要在画布上的不同位置创建框 代码如下:python Tkinter(3d)中长方体的坐标,tkinter,tk,python-3.6,Tkinter,Tk,Python 3.6,我正在用PythonTk制作一个3d框,但是当框在角落屏幕和窗口全屏中绘制时,会循环并创建多个 我不知道为什么会这样,应该只有一个盒子 为什么要在画布上的不同位置创建框 代码如下: from tkinter import * window = Tk() window.title("Game.py") window.geometry("800x500") canvas = Canvas(window, width = window.winfo_width(), height = window
from tkinter import *
window = Tk()
window.title("Game.py")
window.geometry("800x500")
canvas = Canvas(window, width = window.winfo_width(), height = window.winfo_height())
canvas.configure(background='#5d90e2')
canvas.pack()
verts = ( (-1,-1,-1), (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,1), (1,-1,1),(1,1,1), (-1,1,1) )
edges = (0,1), (1,2), (2,3), (3,0), (4,5), (5,6), (6,7), (7,4), (0,4),(1,5), (2,6), (3,7)
def fit_canvas():
canvas.config(width= window.winfo_width(), height=window.winfo_height())
def main():
fit_canvas()
hw = window.winfo_width()/2
hh = window.winfo_height()/2
for edge in edges:
points = []
a = verts[edge[0]]
b = verts[edge[1]]
for x,y,z in (a,b):
z += 5
f = int(200/z)
x,y = x*f, y*f
points += [(hw+x, hh+y)]
print(points[0] , points[1])
canvas.create_line(points[0][0],points[0][1],points[1][0],points[1}[1])
loop_no = 0
while True:
loop_no += 1
main()
canvas.update()
在无限循环中调用main()
,将得到无限多的框(直到程序崩溃…)
要解决此问题,请删除循环。此代码有语法错误,因此无法按原样运行。此外,画布的宽度和高度为1像素,因此不可见。