python中canvas的用法,python canvas画圆
专业视觉设计师,5年的B端产品经理职业生涯,最近热衷编程,追求全栈工程师,厚积薄发。动人的一个月玩弄大蟒图形用户界面。记录自学的过程,纯粹喜欢编程,与大家分享。
我们先来看看简单的帆布动画。是桌面弹簧球
源代码:
导入键
导入随机
root=tkinter .Tk(
root.title(「envent)。
root.geometry(「400x3001010 ")
HB=Tkinter.canvas(root,width=400,height=300,bg=#189fff ))
hb.pack()。
oval=HB.create _ oval (0,0,16,16,fill="red ",outline=" ")
PZT=[ 0,1,1 ] #状态(0,1,2,3 )如下,随机移动x,随机移动y
defcallback(canvas=HB,canvas_w=400,canvas_h=300,r=10,state=pzzt):
zb=画布. Bbox(椭圆形)#获取小球坐标
(条件(() ) ) ) ) )。
ifzb[2]=canvas _ wor(zb[2]==canvas _ wand zb[3]==r):#向右碰撞-修正状态向左或碰撞NE;修正状态,向开关发送
状态[0]=1
state [1]=random.randint (1,2)))))))state[1]=random。randint(1,2)))
state [2]=random.randint (1,2)))))))state[2]))state[2]))65
elif zb[0]=0或(zb[0]==0和zb [2]==canvas _ h-r ) :#)左-修正状态右orSW修正状态,向氖发送
状态[0]=0
state [1]=random.randint (1,3)))))。
state [2]=random.randint (3,6))))。
elif zb[1]=0或(zb[0]==0和zb [1]==0) :#)与上边碰撞-修正状态为向下或与西北碰撞;修正状态,向东南发送
状态[0]=2
state [1]=random.randint (3,6)))))))))))))。
state [2]=random.randint (1,3)))))))))))))))。
elif zb[3]=canvas _ hor(zb[2]==canvas _ wand zb[3]==canvas _ h):#冲击下边-修正状态向上或冲击SE;修正状态,向西北
状态[0]=3
state [1]=random.randint (1,5))))))))。
state [2]=random.randint (10,20))))。
(运动(运动(运动(运动) )。
如果状态[0]==0:
canvas.move(oval,state[1],-state[2])右、上或翻译指正负
否则如果状态[0]==1:
canvas.move(oval,-state[1],state[2])左、下、SW-正负
否则如果状态[0]==2:
canvas.move(oval,state[1],state[2] ) #指向下、右、se—正
否则如果状态[0]==3:
指canvas.move(oval,-state[1],-state[2] ) #上、左、NW-负
canvas.after(30,回调)).
回调() )
根。主循环(
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。