Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦
目录
- tkinter库画图基本思路
- 画虚线
- 定义画原始人物的函数
- 点击眨眼
- 运动四肢
- 色彩变化
我们知道Python之所以强大,很大一方面都是因为它具有很多强大的第三方库。
而且Python很突出的一方面就是代码用户交互界面的实现,这一点在Python上也被称作GUI编程。
与此同时,Python的GUI编程最常用的库就是tkinter,它包含了很多Python交互界面编程所需要的函数。
最近就有一个客户需求在GUI界面实现卡通人物的点击动作,那么今天我就来和大家分享一个在tkinter库中使用画布绘制会动的哆啦A梦的一个骚操作。
tkinter库画图基本思路
在使用Python的tkinter库进行界面绘图时,必须要用到的就是设置Canvas画布,熟悉tkinter库的小伙伴应该都知道这个函数。
在设置好画布之后,就是我们的程序员大画家施展才艺的时候了,在这里呢大灰狼给小伙伴一个小小的建议,就是在进行Canvas绘画之前呢。
可以先根据画布的位置设置一个x、y轴的坐标中心,这样做的目的呢就是在使用代码作图的时候,方便根据坐标参数进行图形界面的布局设置,设置坐标轴的具体代码如下:
画虚线
line1 = w.create_line(0,200,400,200,fill="black",dash=(4,4)) #设置横向坐标线line2 = w.create_line(200,0,200,400,fill="black",dash=(4,4)) #设置纵向坐标线
设置好坐标轴之后就是开始哆啦A梦的大作了。
其实使用编程语言进行图形的绘制,大多数都是使用规则或不规则的图形组装拼接而成的
它就好像我们小时候玩积木一样,我们要做的就是将不同的积木(代码绘制的图形)拼装成我们想要的图形就可以了。
因此图形的绘制问题,最主要的就是什么形状的图形在哪里放置的问题了。
那么下面大灰狼就来和大家分享一下哆啦A梦的卡通图怎么画:
定义画原始人物的函数
def bt1_age():
```python#画虚线line1 = w.create_line(0,200,400,200,fill="black",dash=(4,4)) #设置横向坐标线line2 = w.create_line(200,0,200,400,fill="black",dash=(4,4)) #设置纵向坐标线#画圆脸w.create_oval((125,70,275,220),fill = 'blue')#画圆脸w.create_oval((140,100,260,220),fill = 'white')#画椭圆w.create_oval((200,80,230,120),fill = 'white')#画椭圆w.create_oval((170,80,200,120),fill = 'white')#画椭圆眼睛w.create_oval((203,92,215,108),fill = 'black')#画椭圆眼睛w.create_oval((185,92,197,108),fill = 'black')#画椭圆眼睛w.create_oval((206,95,212,105),fill = 'white')#画椭圆眼睛w.create_oval((188,95,194,105),fill = 'white')#画圆鼻子w.create_oval((193,115,207,130),fill = 'red')#嘴w.create_arc((140,60,260,180),style = 'arc',start = 240,extent = 60)#画弧线w.create_line(200,130,200,180,fill="black")#竖线#胡须w.create_line(215,150,245,150,fill="black")#横线w.create_line(155,150,185,150,fill="black")#横线w.create_line(158,127,185,137,fill="black")w.create_line(215,137,242,127,fill="black")w.create_line(158,170,185,163,fill="black")w.create_line(215,163,242,168,fill="black")#身体w.create_rectangle(150,200,250,285,fill="blue") #身体正前方w.create_arc((160,190,240,270),style = 'chord',start = 135,extent = 270,fill = 'white')#画弧线w.create_line((150,200,250,200),fill="red",width = 10,capstyle = 'round')#圆滑轮廓线w.create_arc((185,270,215,300),style = 'chord',start = 0,extent = 180,fill = 'white')#画弧线w.create_line(185,285,215,285,fill="white")#画脚#画椭圆w.create_oval((140,275,190,295),fill = 'white') #左脚w.create_oval((210,275,260,295),fill = 'white') #右脚#画手w.create_polygon([150,205,150,235,120,250,120,235],outline="black",fill="blue")#手臂多边形w.create_polygon([250,205,250,235,280,250,280,235],outline="black",fill="blue")w.create_oval((110,230,135,255),fill = 'white') #左圆形手掌w.create_oval((265,230,290,255),fill = 'white') #右圆形手掌#画铃铛w.create_oval((190,200,210,220),fill = 'yellow') #铃铛中心圆w.create_line((191,210,209,210),fill="black",width = 5,capstyle = 'round')#圆滑轮廓线w.create_line((192,210,208,210),fill="yellow",width = 3,capstyle = 'round')#圆滑轮廓线w.create_oval((198,213,202,217),fill = 'red') #中心小红点w.create_line(200,218,200,220,fill="black")#画口袋w.create_arc((170,200,230,260),style = 'chord',start = 180,extent = 180,fill = 'white')#画弧线
以上这些呢就是定义哆啦A梦函数的基本操作了,那么接下来就是让哆啦A梦实现各种工作。
其实卡通人物每一个动作的实现其实是一幅全新的图画,通过多个这样图画函数,在点击触发某个动作的按钮时,调用该函数的图画即可。
那么接下来大灰狼来和大家分享几个有趣的动作变化。
点击眨眼
点击眨眼的函数大部分与定义哆啦A梦的函数相同,既然是眨眼的动作,那么最大的区别就是在眼睛上了,
因此在定义了眨眼函数之后,只需要眼部代码换成下方的闭眼代码就可以了,
闭眼动作代码
#闭左眼w.create_line((185, 100, 195, 105), fill='black') #闭左眼w.create_line((185, 105, 195, 105), fill='black') #闭左眼w.create_line((185, 110, 195, 105), fill='black') #闭左眼#闭右眼w.create_line((205, 105, 215, 100), fill='black') #闭右眼w.create_line((205, 105, 215, 105), fill='black') #闭右眼w.create_line((205, 105, 215, 110), fill='black') #闭右眼
运动四肢
运动四肢的函数相对较复杂,因为需要实现手臂和双腿的同时运动,因此需要修改手臂代码和哆啦A梦的身体部分,具体的实现代码如下:
修改参数实现四肢运动
w.create_rectangle(150,200,250,285,fill="blue") #身体正前方w.create_arc((160,190,240,270),style = 'chord',start = 135,extent = 270,fill = 'white')#画弧线w.create_line((150,200,250,200),fill="red",width = 10,capstyle = 'round')#圆滑轮廓线w.create_arc((170,270,230,300),style = 'chord',start = 0,extent = 180,fill = 'white', outline = 'white')#画弧线使双腿张开w.create_line(185,285,215,285,fill="white")#画脚#画椭圆w.create_oval((130,275,170,295),fill = 'white')w.create_oval((230,275,270,295),fill = 'white')
下面部分是修改实现手臂运动的代码修改:
修改参数实现四肢运动
w.create_rectangle(150,200,250,285,fill="blue") #身体正前方w.create_arc((160,190,240,270),style = 'chord',start = 135,extent = 270,fill = 'white')#画弧线w.create_line((150,200,250,200),fill="red",width = 10,capstyle = 'round')#圆滑轮廓线w.create_arc((170,270,230,300),style = 'chord',start = 0,extent = 180,fill = 'white', outline = 'white')#画弧线使双腿张开w.create_line(185,285,215,285,fill="white")#画脚#画椭圆w.create_oval((130,275,170,295),fill = 'white')w.create_oval((230,275,270,295),fill = 'white')
色彩变化
看过哆啦A梦的小伙伴应该都知道哆啦A梦还有一个妹妹----一只黄色的哆啦A梦。
那么我们只需要修改部分代码就可以实现哆啦A梦的色彩变化了,在这里我们只需要将在进行绘制时所有的调用‘blue’的代码换成调用‘yellow’色彩即可,同样我们也可以根据自己的爱好绘制其他不同的色彩。
这样我们的哆啦A梦以及实现的各种不同的动作变化的函数就已经定义完成了,总结一下就是在画布定义不同的图形函数,根据需要依次调用函数即可!
完整的代码可以在https://download.csdn.net/download/weixin_44985880/12367814下载,
*
或者关注微信公众号“码猿编程日记”回复 ‘哆啦A梦’即可获取GUI编程的哆啦A梦完整代码!*
Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦相关推荐
- python用turtle画月亮_使用Python的turtle画小猪乔治和哆啦 A 梦
本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...
- python画小猪乔治动画片全集_使用Python的turtle画小猪乔治和哆啦 A 梦!附源码!...
本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...
- python画皮卡丘全身立体_超酷!用 Python 教你绘制皮卡丘和哆啦A梦
本文利用 Python 绘制两个卡通角色,并带大家熟悉一下绘图程序包 turtle 的一些用法,先看一下 最终皮卡丘的绘制效果录制_2020_08_01_22_15_39_710.gif 在使用之前请 ...
- 解决windows版本python下没有tkinter库问题
假设您在Windows上并且还安装了常规Python发行版(相同版本的嵌入式发行版),要在嵌入式发行版中安装Tkinter,您可以从常规Python发行版中复制以下文件: tcl folder to ...
- python动态换图tkinter库的Canvas画布组件
之前做统计彩票程序,然后想做个窗口程序在窗口里动态的想换哪个统计图表就看哪个,结果半天都做不好,网上各种混乱的代码几乎没一个能用的,最后干脆曲线救国,统计完之后统计视图自动保存成图片,这个比较简单,用 ...
- CAD画图教程,手把手教你画“鱼”
今天利用圆命令画一条固执的鱼. 1.把基本的尺寸线先画好,可能有人会说,这哪里是第一步,是不是中间省略了很多过程?其实不是的,都是些简单的直线和定位,看着来画就可以了. 2.以R32的圆心为圆心作R1 ...
- 哆啦a梦简单图画python编程_哆啦a梦怎么画简单画法,哆啦a梦简笔画带颜色,超可爱...
有着神奇口袋的蓝胖子给我们的童年留下了深刻的记忆,哆啦A梦的口袋中总是能掏出各种神奇的道具帮助大雄解决遇到的困难,你是不是曾经也幻想有一个这样万能的朋友呢?今天我们为大家整理了一些哆啦A梦简笔画大全可 ...
- python turtle库画图_《体验Python中turtle库画图》教学设计
<体验Python中turtle库画图>教学设计 射阳县高级中学 张珊珊 学情分析: 学生从未接触过编程,因此通过画图来提高学生的学习积极性,而Python语言相较其他语言简单易学,程序里 ...
- 精选20个爆火的Python实战项目(含源码),直接拿走不谢
今天给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python. ① 猜字游戏 在这个游戏中,你必须一个字母一个字母的猜出秘密单词. 如果你猜错了一个字母,你将丢掉一条命. 正如游戏名 ...
最新文章
- java gui 颜色从html_Java GUI显示网页并返回HTML
- java 基本语法与流程控制_Java基础语法之控制流程
- CXF 客服端调用报错
- 表达式树练习实践:入门基础
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
- springdatajpa命名规则_Spring Boot 之Spring data JPA简介
- Jmeter性能测试工具Timer定时器详解
- 计算机句法分析的研究现状,计算机理论论文融合语义和句型信息的中文句法分析方法研究与实现...
- Java static静态关键字 有啥用
- 【最优化方法】K-Means聚类实验:Python实现手写数字图像MNIST分类
- vue模板中写html,vue中template的三种写法示例
- 仿牛客社区项目3.2——发布帖子(异步通信技术AJAX)
- kmplayer android官方下载,KMPlayer下载
- JavaScript实现更换背景图片
- 如何在富途证券开户,富途证券如何开户,如何开通港股账户,如何炒港股
- WebApp开发中的rem.js
- 329 矩阵中的最长递增路径
- 下载学习通上没有下载权限的文件
- CBAM CBAM: Convolutional Block Attention Module
- 幼儿园数学目标_幼儿园大班数学计划