本文共 1618 字,大约阅读时间需要 5 分钟。
1.利用Python的tkinter画一个五角星;
2.做一个简单的动画,画布上的对象移动分析五角心的五个顶点的坐标:
确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的计算看图所示 代码如下所示:# coding:utf-8# 画五角星from tkinter import *import mathbase=Tk()canvas=Canvas(base,width=300,height=300,background='grey')canvas.pack()# 五角星的中心点center_x=150center_y=150r=150 # 中心点距离每个角的距离,称为半径# 依次存放五角星的五个点的位置points=[ # 左上点 center_x-int(r*math.sin(2*math.pi/5)), center_y-int(r*math.cos(2*math.pi/5)), # 右上点 center_x+int(r*math.sin(2*math.pi/5)), center_y-int(r*math.cos(2*math.pi/5)), # 左下点 center_x-int(r*math.sin(math.pi/5)), center_y+int(r*math.cos(math.pi/5)), # 顶点 center_x, center_y-r, # 右下点 center_x+int(r*math.sin(math.pi/5)), center_y+int(r*math.cos(math.pi/5)),]# 根据十个顶点创建一个多边形canvas.create_polygon(points,outline='green',fill='yellow')# 在中心点处画’五角星‘三个字canvas.create_text(150,150,text='五角星')# 消息循环base.mainloop()
绑定鼠标的点击事件,让画布上的对象随着鼠标的不断点击不停地移动。
# encoding:utf-8from tkinter import *base=Tk()def btn_click(event): global canvas # 参数:标识移动对象,移动的终点坐标(终点坐标越远,移动的越快) canvas.move(ball,12,6) canvas.move('fall',5,20)canvas=Canvas(base,width=500,height=500)canvas.pack()# 绑定鼠标左键点击,标识左键, 标识中键, 标识鼠标右键canvas.bind(" ",btn_click)# 创建组件后返回id(标识具体的某一个对象)ball=canvas.create_oval(20,20,50,50,fill='green')# 创建组件使用tag属性(rag用于表示一类,用于多个对象)canvas.create_text(123,56,fill='red',text='I love Python',tag='fall')# 创建的时候如果没有指定tag可以利用addtag_withtag添加# 同类函数还有addtag_all,add_tag_above,addtag_xxx等等rectangle=canvas.create_rectangle(56,78,173,110,fill='grey')canvas.addtag_withtag('fall',rectangle)# 消息循环base.mainloop()