【Python入门练手小项目】画一个蓝胖子❤️
哆啦A梦图形绘制
工具使用
开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:turtle
项目思路解析
- 分模块画出蓝胖子
- 画头
- 画红领巾
- 画脸、鼻子、胡须
选择合适的画布合适的画布大小
turtle.screensize(800, 600, "#F0F0F0")
turtle.pensize(3)
turtle.speed(20)
用screensize设置的是画布大小及背景色,窗体和画布不是一个概念 如果画布大于窗体,窗体会出现滚动条,如果画布小于窗体,画布会填充整个窗体。
先给蓝胖子画出头部
画了一个被切掉下半部分的圆
""" 画了一个被切掉下半部分的圆"""turtle.penup() # 抬笔turtle.circle(150, 40) # 画圆, 半径150,圆周角40turtle.pendown() # 落笔turtle.fillcolor("#00a0de") # 填充色turtle.begin_fill() # 开始填充turtle.circle(150, 280) # 画圆,半径150, 圆周角280turtle.end_fill()
画出蓝胖子的红色围巾 在切圆下方
def drawRedScarf():""" 画围巾"""turtle.fillcolor("red") # 填充颜色turtle.begin_fill()turtle.seth(0) # 朝向右
turtle.fd(200) # 前进10个单位turtle.circle(-5, 90)
turtle.fd(10)turtle.circle(-5, 90)
turtle.fd(207)turtle.circle(-5, 90)
turtle.fd(10)turtle.circle(-5, 90)
turtle.end_fill()
添加蓝胖子的红鼻子 绘制脸部数据
""""""turtle.forward(183) # 前行183个单位turtle.fillcolor("white") # 填充颜色为白色turtle.begin_fill() # 开始填充turtle.left(45) # 左转45度turtle.circle(120, 100) # 右边那半边脸turtle.seth(90) # 朝向向上drawEye() # 画右眼睛turtle.seth(180) # 朝向左turtle.penup() # 抬笔turtle.fd(60) # 前行60turtle.pendown() # 落笔turtle.seth(90) # 朝向上drawEye() # 画左眼睛turtle.penup() # 抬笔turtle.seth(180) # 朝向左turtle.fd(64) # 前进64turtle.pendown() # 落笔turtle.seth(215) # 修改朝向turtle.circle(120, 100) # 左边那半边脸turtle.end_fill() #def drawRedNose():flyTo(-10, 158)turtle.fillcolor("red") # 填充颜色turtle.begin_fill()turtle.circle(20)turtle.end_fill()
加上代表性的猫胡子
flyTo(5, 148)turtle.seth(270)turtle.fd(100)turtle.seth(0)turtle.circle(120, 50)turtle.seth(230)turtle.circle(-120, 100)
def beard():""" 画胡子, 一共六根"""# 左边第一根胡子flyTo(-37, 135)turtle.seth(165)turtle.fd(60)# 左边第二根胡子flyTo(-37, 125)turtle.seth(180)turtle.fd(60)# 左边第三根胡子flyTo(-37, 115)turtle.seth(193)turtle.fd(60)# 右边第一根胡子flyTo(37, 135)turtle.seth(15)turtle.fd(60)# 右边第二根胡子flyTo(37, 125)turtle.seth(0)turtle.fd(60)# 右边第三根胡子flyTo(37, 115)turtle.seth(-13)turtle.fd(60)
添加蓝胖子的身体轮廓 加上两只可爱的小手手
flyTo(0, 0)turtle.seth(0)turtle.penup()turtle.circle(150, 50)turtle.pendown()turtle.seth(30)turtle.fd(40)turtle.seth(70)turtle.circle(-30, 270)turtle.fillcolor("#00a0de")turtle.begin_fill()turtle.seth(230)turtle.fd(80)turtle.seth(90)turtle.circle(1000, 1)turtle.seth(-89)turtle.circle(-1000, 10)turtle.seth(180)turtle.fd(70)turtle.seth(90)turtle.circle(30, 180)turtle.seth(180)turtle.fd(70)turtle.seth(100)turtle.circle(-1000, 9)turtle.seth(-86)turtle.circle(1000, 2)turtle.seth(230)turtle.fd(40)turtle.circle(-30, 230)turtle.seth(45)turtle.fd(81)turtle.seth(0)turtle.fd(203)turtle.circle(5, 90)turtle.fd(10)turtle.circle(5, 90)turtle.fd(7)turtle.seth(40)turtle.circle(150, 10)turtle.seth(30)turtle.fd(40)turtle.end_fill()
精修蓝胖子的四肢 添加蓝胖子的鞋
# 左手turtle.seth(70)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(-30)turtle.end_fill()
# 脚flyTo(103.74, -182.59)turtle.seth(0)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(-15, 180)turtle.fd(90)turtle.circle(-15, 180)turtle.fd(10)turtle.end_fill()flyTo(-96.26, -182.59)turtle.seth(180)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(15, 180)turtle.fd(90)turtle.circle(15, 180)turtle.fd(10)turtle.end_fill()
# 右手flyTo(-133.97, -91.81)turtle.seth(50)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(30)turtle.end_fill()
放置蓝胖子的神奇口袋 加上蓝胖子的铃铛 添加上感人的眼神
# 口袋flyTo(-103.42, 15.09)turtle.seth(0)turtle.fd(38)turtle.seth(230)turtle.begin_fill()turtle.circle(90, 260)turtle.end_fill()flyTo(5, -40)turtle.seth(0)turtle.fd(70)turtle.seth(-90)turtle.circle(-70, 180)turtle.seth(0)turtle.fd(70)
# 铃铛flyTo(-103.42, 15.09)turtle.fd(90)turtle.seth(70)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-20)turtle.end_fill()turtle.seth(170)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-2, 180)turtle.seth(10)turtle.circle(-100, 22)turtle.circle(-2, 180)turtle.seth(180 - 10)turtle.circle(100, 22)turtle.end_fill()flyTo(-13.42, 15.09)turtle.seth(250)turtle.circle(20, 110)turtle.seth(90)turtle.fd(15)turtle.dot(10)flyTo(0, -150)drawBlackdrawEye()
绘制完成
简易源码分享
import turtledef flyTo(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()def drawEye():turtle.tracer(False)a = 2.5for i in range(120):turtle.left(3)if 0 <= i < 30 or 60 <= i < 90:a -= 0.05else:a += 0.05turtle.fd(a)turtle.tracer(True)def beard():""" 画胡子, 一共六根"""# 左边第一根胡子flyTo(-37, 135)turtle.seth(165)turtle.fd(60)# 左边第二根胡子flyTo(-37, 125)turtle.seth(180)turtle.fd(60)# 左边第三根胡子flyTo(-37, 115)turtle.seth(193)turtle.fd(60)# 右边第一根胡子flyTo(37, 135)turtle.seth(15)turtle.fd(60)# 右边第二根胡子flyTo(37, 125)turtle.seth(0)turtle.fd(60)# 右边第三根胡子flyTo(37, 115)turtle.seth(-13)turtle.fd(60)def drawRedScarf():""" 画围巾"""turtle.fillcolor("red") # 填充颜色turtle.begin_fill()turtle.seth(0) # 朝向右turtle.fd(200) # 前进10个单位turtle.circle(-5, 90)turtle.fd(10)turtle.circle(-5, 90)turtle.fd(207)turtle.circle(-5, 90)turtle.fd(10)turtle.circle(-5, 90)turtle.end_fill()def drawMouse():flyTo(5, 148)turtle.seth(270)turtle.fd(100)turtle.seth(0)turtle.circle(120, 50)turtle.seth(230)turtle.circle(-120, 100)def drawRedNose():flyTo(-10, 158)turtle.fillcolor("red") # 填充颜色turtle.begin_fill()turtle.circle(20)turtle.end_fill()def drawBlackdrawEye():turtle.seth(0)flyTo(-20, 195)turtle.fillcolor("#000000") # 填充颜色turtle.begin_fill()turtle.circle(13)turtle.end_fill()turtle.pensize(6)flyTo(20, 205)turtle.seth(75)turtle.circle(-10, 150)turtle.pensize(3)flyTo(-17, 200)turtle.seth(0)turtle.fillcolor("#ffffff")turtle.begin_fill()turtle.circle(5)turtle.end_fill()flyTo(0, 0)def drawFace():""""""turtle.forward(183) # 前行183个单位turtle.fillcolor("white") # 填充颜色为白色turtle.begin_fill() # 开始填充turtle.left(45) # 左转45度turtle.circle(120, 100) # 右边那半边脸turtle.seth(90) # 朝向向上drawEye() # 画右眼睛turtle.seth(180) # 朝向左turtle.penup() # 抬笔turtle.fd(60) # 前行60turtle.pendown() # 落笔turtle.seth(90) # 朝向上drawEye() # 画左眼睛turtle.penup() # 抬笔turtle.seth(180) # 朝向左turtle.fd(64) # 前进64turtle.pendown() # 落笔turtle.seth(215) # 修改朝向turtle.circle(120, 100) # 左边那半边脸turtle.end_fill() #def drawHead():""" 画了一个被切掉下半部分的圆"""turtle.penup() # 抬笔turtle.circle(150, 40) # 画圆, 半径150,圆周角40turtle.pendown() # 落笔turtle.fillcolor("#00a0de") # 填充色turtle.begin_fill() # 开始填充turtle.circle(150, 280) # 画圆,半径150, 圆周角280turtle.end_fill()def drawAll():drawHead()drawRedScarf()drawFace()drawRedNose()drawMouse()beard()flyTo(0, 0)turtle.seth(0)turtle.penup()turtle.circle(150, 50)turtle.pendown()turtle.seth(30)turtle.fd(40)turtle.seth(70)turtle.circle(-30, 270)turtle.fillcolor("#00a0de")turtle.begin_fill()turtle.seth(230)turtle.fd(80)turtle.seth(90)turtle.circle(1000, 1)turtle.seth(-89)turtle.circle(-1000, 10)turtle.seth(180)turtle.fd(70)turtle.seth(90)turtle.circle(30, 180)turtle.seth(180)turtle.fd(70)turtle.seth(100)turtle.circle(-1000, 9)turtle.seth(-86)turtle.circle(1000, 2)turtle.seth(230)turtle.fd(40)turtle.circle(-30, 230)turtle.seth(45)turtle.fd(81)turtle.seth(0)turtle.fd(203)turtle.circle(5, 90)turtle.fd(10)turtle.circle(5, 90)turtle.fd(7)turtle.seth(40)turtle.circle(150, 10)turtle.seth(30)turtle.fd(40)turtle.end_fill()# 左手turtle.seth(70)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(-30)turtle.end_fill()# 脚flyTo(103.74, -182.59)turtle.seth(0)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(-15, 180)turtle.fd(90)turtle.circle(-15, 180)turtle.fd(10)turtle.end_fill()flyTo(-96.26, -182.59)turtle.seth(180)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(15, 180)turtle.fd(90)turtle.circle(15, 180)turtle.fd(10)turtle.end_fill()# 右手flyTo(-133.97, -91.81)turtle.seth(50)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(30)turtle.end_fill()# 口袋flyTo(-103.42, 15.09)turtle.seth(0)turtle.fd(38)turtle.seth(230)turtle.begin_fill()turtle.circle(90, 260)turtle.end_fill()flyTo(5, -40)turtle.seth(0)turtle.fd(70)turtle.seth(-90)turtle.circle(-70, 180)turtle.seth(0)turtle.fd(70)# 铃铛flyTo(-103.42, 15.09)turtle.fd(90)turtle.seth(70)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-20)turtle.end_fill()turtle.seth(170)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-2, 180)turtle.seth(10)turtle.circle(-100, 22)turtle.circle(-2, 180)turtle.seth(180 - 10)turtle.circle(100, 22)turtle.end_fill()flyTo(-13.42, 15.09)turtle.seth(250)turtle.circle(20, 110)turtle.seth(90)turtle.fd(15)turtle.dot(10)flyTo(0, -150)drawBlackdrawEye()def main():turtle.screensize(800, 600, "#F0F0F0")turtle.pensize(3)turtle.Screen().title('哆啦A梦')turtle.speed(15)drawAll()if __name__ == "__main__":main()turtle.mainloop()
我是白又白i,一名喜欢分享知识的程序媛❤️
如果没有接触过编程这块的朋友看到这篇博客,发现不会的或者想要学习Python的,可以直接留言或者私我【非常感谢你的点赞、收藏、关注、评论,一键四连支持】
【Python入门练手小项目】画一个蓝胖子❤️相关推荐
- 【Python入门练手小项目】童年最爱看的动画片之海绵宝宝和派大星❤️
海绵宝宝 工具使用 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:turtle 效果展示 项目思路解析 明确turtle基本配置,然后我们在确定画框的高度以 ...
- Bootstrap入门练手小项目,创建一个有侧边栏三级标题可页面跳转的导航
目录 前言 运行效果 代码 遇到的一些问题 前言 在已学习HTML和CSS,以及了解一些JS的基础上接触Bootstrap,编写一个具有侧边栏.三级标题以及可实现页面跳转的小项目 给目前不了解这些内容 ...
- ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目
前言: 最近在 GitHub 上发现了一个 vanillawebprojects[1] 开源仓库,里面收集了 20 个 JavaScript+Html+CSS的练手项目,没有使用任何框架,可以让你从基 ...
- 数据结构练手小项目(AVL树、哈希表、循环链表、MySQL数据库)
文章目录 前言 正文(无删减) 我的想法(删减修改版) 数据导入与数据存储 功能实现 数据结构 用户结构 SIM卡结构 AVL树数据结构 哈希表结构 数据表 用户表 SIM卡表 时间安排 前言 本月主 ...
- html+css+js之20个练手小项目(一)
html+css+js之20个练手小项目(一)--Hangman 前言 一.HTML 二.CSS 三.JS 前言 前端新手练习,记录不迷失. 主要练习html和CSS布局以及JS. 来源github, ...
- c语言模拟器怎么打程序,C语言初学者练手小项目——万花模拟器
原标题:C语言初学者练手小项目--万花模拟器 还记得小时候玩的万花尺么?好好玩,各种不同的点距能画出各种各样形状图形. C语言程序万花尺模拟 函数功能:每隔5秒随机生成万花图形 并自动保存作图参数以及 ...
- 台式小风扇(HTML+CSS+JS练手小项目)
台式小风扇(HTML+CSS+JS练手小项目) 功能介绍 外观展示 HTML代码 CSS代码 JS代码 总结 功能介绍 前段时间看到这样的风扇特效,感觉还挺好玩,就自己也写一个练练手. 风扇有四个档位 ...
- 练手小项目,爬取3DM图片
博客原文:https://weweweha.com 1. 概述 爬取3DM指定网页的游戏壁纸,并且通过多线程来加速爬取图片的速度. 2.使用库 request库用来1解析指定网页,re库用来搜 ...
- 练手小项目(2)-生活小助手--星座运势查询
上一篇内容 练手小项目(2)-生活小助手 今天星期一.趁着中午的歇息时间把 第二个写出来 星座运势,近期看看极客学院 用聚合数据做了天气预报的视频教程,不好评价他.看他在后面的代码变更那么大,我就知道 ...
- C# Socket网络编程(附赠练手小项目)
在公司花了两天的时间来研究Socket编程,感觉也还是学到了一点点皮毛,不过也还是有一点点的小成就. 配合Winform窗体界面,实现了简单的窗体间互相通信的小项目(可以互相发消息,服务器可以给客户端 ...
最新文章
- Oracle优化01-引起数据库性能问题的因素
- 中呜机器人编程视频教程_清华北大泄露Python436集视频教程,这就是你现在需要的...
- MyBatis中传递数组参数和List参数时if-test判空和判断长度的写法
- python中的模块原则_python 的模块与包
- Tensorlfow2.0 二分类和多分类focal loss实现和在文本分类任务效果评估
- psql error: psql: symbol lookup error: psql: undefined symbol: PQconnectdbParams
- POJ-1681 Painter's Problem 高消
- SQLserver添加主键
- 如何画OFDM频谱图
- java弹幕爬取,手把手教你爬取B站弹幕(超详细)!
- RoCEv2 无损队列缓存
- mysql修改表结构会锁表吗_MYSQL完美解决生产环境改表结构锁表问题
- 蓝天保卫战之产品测试服务
- 线条边框简笔画图片大全_植物简笔画素材大全赶紧收藏起来,一定用的上!
- 十款入门级微信小程序源码分享之三
- ncae的c语言编程高阶怎么考,ncae考试科等目.doc
- 遗传算法之旅行家问题(TSP)
- 大学英语(第二册)复习(原文及全文翻译)——Unit 9 - What Is Intelligence, Anyway?(智力到底是什么?)
- 计算机第四章章末测试题,计算机等级考试二级VB测试题(第四章)
- ps【瘦脸】【去双下巴】