博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python GUI 编程tkinter--画五角星和简单的动画制作
阅读量:2489 次
发布时间:2019-05-11

本文共 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()
你可能感兴趣的文章
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>