首页 > 编程知识 正文

python canvas教程,canvas动画框架

时间:2023-05-06 16:59:50 阅读:168411 作者:2512

专业视觉设计师,5年的B端产品经理职业生涯,最近热衷编程,追求全栈工程师,厚积薄发。 动人的一个月玩弄python GUI。 记录自学的过程,纯粹喜欢编程,与大家分享。

我们先来看看简单的canvas动画。 是桌面弹簧球

源代码:

导入键

导入随机

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=canvas.Bbox(oval ) #获取小球坐标

(条件(() ) ) ) ) )。

ifzb [2]=canvas _ wor (zb [2]==canvas _ wand zb [3]==r ) :#向右碰撞-修正状态向左或碰撞NE; 修正状态,向开关发送

state[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]=0or (zb [0]==0and zb [2]==canvas _ h-r ) :# )左-修正状态右orSW; 修正状态,向NE发送

state[0]=0

state [1]=random.randint (1,3 ) ) ) ) ) ) )。

state [2]=random.randint (3,6 ) ) ) ) )。

elif zb [1]=0or (zb [0]==0and zb [1]==0) :# )与上边碰撞-修正状态为向下或与NW碰撞; 修正状态,向SE发送

state[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; 修正状态,向NW

state[0]=3

state [1]=random.randint (1,5 ) ) ) ) ) ) ) ) )。

state [2]=random.randint (10,20 ) ) ) ) )。

(运动(运动(运动(运动) )。

if state[0]==0:

canvas.move(oval,state[1],-state[2] )右、上或ne-指正负

elif state[0]==1:

canvas.move(oval,-state[1],state[2] )左、下、SW-正负

elif state[0]==2:

canvas.move(oval,state[1],state[2] ) #指向下、右、se—正

elif state[0]==3:

指canvas.move(oval,-state[1],-state[2] ) #上、左、NW-负

canvas.after(30,callback ) )。

callback () )

root.mainloop (

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。