哆啦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入门练手小项目】画一个蓝胖子❤️相关推荐

  1. 【Python入门练手小项目】童年最爱看的动画片之海绵宝宝和派大星❤️

    海绵宝宝 工具使用 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:turtle 效果展示 项目思路解析 明确turtle基本配置,然后我们在确定画框的高度以 ...

  2. Bootstrap入门练手小项目,创建一个有侧边栏三级标题可页面跳转的导航

    目录 前言 运行效果 代码 遇到的一些问题 前言 在已学习HTML和CSS,以及了解一些JS的基础上接触Bootstrap,编写一个具有侧边栏.三级标题以及可实现页面跳转的小项目 给目前不了解这些内容 ...

  3. ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目

    前言: 最近在 GitHub 上发现了一个 vanillawebprojects[1] 开源仓库,里面收集了 20 个 JavaScript+Html+CSS的练手项目,没有使用任何框架,可以让你从基 ...

  4. 数据结构练手小项目(AVL树、哈希表、循环链表、MySQL数据库)

    文章目录 前言 正文(无删减) 我的想法(删减修改版) 数据导入与数据存储 功能实现 数据结构 用户结构 SIM卡结构 AVL树数据结构 哈希表结构 数据表 用户表 SIM卡表 时间安排 前言 本月主 ...

  5. html+css+js之20个练手小项目(一)

    html+css+js之20个练手小项目(一)--Hangman 前言 一.HTML 二.CSS 三.JS 前言 前端新手练习,记录不迷失. 主要练习html和CSS布局以及JS. 来源github, ...

  6. c语言模拟器怎么打程序,C语言初学者练手小项目——万花模拟器

    原标题:C语言初学者练手小项目--万花模拟器 还记得小时候玩的万花尺么?好好玩,各种不同的点距能画出各种各样形状图形. C语言程序万花尺模拟 函数功能:每隔5秒随机生成万花图形 并自动保存作图参数以及 ...

  7. 台式小风扇(HTML+CSS+JS练手小项目)

    台式小风扇(HTML+CSS+JS练手小项目) 功能介绍 外观展示 HTML代码 CSS代码 JS代码 总结 功能介绍 前段时间看到这样的风扇特效,感觉还挺好玩,就自己也写一个练练手. 风扇有四个档位 ...

  8. 练手小项目,爬取3DM图片

    博客原文:https://weweweha.com 1. 概述 ​ 爬取3DM指定网页的游戏壁纸,并且通过多线程来加速爬取图片的速度. 2.使用库 ​ request库用来1解析指定网页,re库用来搜 ...

  9. 练手小项目(2)-生活小助手--星座运势查询

    上一篇内容 练手小项目(2)-生活小助手 今天星期一.趁着中午的歇息时间把 第二个写出来 星座运势,近期看看极客学院 用聚合数据做了天气预报的视频教程,不好评价他.看他在后面的代码变更那么大,我就知道 ...

  10. C# Socket网络编程(附赠练手小项目)

    在公司花了两天的时间来研究Socket编程,感觉也还是学到了一点点皮毛,不过也还是有一点点的小成就. 配合Winform窗体界面,实现了简单的窗体间互相通信的小项目(可以互相发消息,服务器可以给客户端 ...

最新文章

  1. Oracle优化01-引起数据库性能问题的因素
  2. 中呜机器人编程视频教程_清华北大泄露Python436集视频教程,这就是你现在需要的...
  3. MyBatis中传递数组参数和List参数时if-test判空和判断长度的写法
  4. python中的模块原则_python 的模块与包
  5. Tensorlfow2.0 二分类和多分类focal loss实现和在文本分类任务效果评估
  6. psql error: psql: symbol lookup error: psql: undefined symbol: PQconnectdbParams
  7. POJ-1681 Painter's Problem 高消
  8. SQLserver添加主键
  9. 如何画OFDM频谱图
  10. java弹幕爬取,手把手教你爬取B站弹幕(超详细)!
  11. RoCEv2 无损队列缓存
  12. mysql修改表结构会锁表吗_MYSQL完美解决生产环境改表结构锁表问题
  13. 蓝天保卫战之产品测试服务
  14. 线条边框简笔画图片大全_植物简笔画素材大全赶紧收藏起来,一定用的上!
  15. 十款入门级微信小程序源码分享之三
  16. ncae的c语言编程高阶怎么考,ncae考试科等目.doc
  17. 遗传算法之旅行家问题(TSP)
  18. 大学英语(第二册)复习(原文及全文翻译)——Unit 9 - What Is Intelligence, Anyway?(智力到底是什么?)
  19. 计算机第四章章末测试题,计算机等级考试二级VB测试题(第四章)
  20. ps【瘦脸】【去双下巴】

热门文章

  1. reaxff反应力场计算
  2. Linux系统之安装mariadb方法
  3. 袁国宝:董明珠的小倔强!
  4. 大学到底教会了我们什么?
  5. docker 仓库镜像 替换_Docker如何制作自己镜像并上传dockerhub
  6. Python 内建函数大全
  7. 考勤统计表sql 某个项目在某个月的考勤统计
  8. 英特尔cpu与主板芯片组对应关系(包含12代)
  9. 清理谷歌浏览器注册表_win10注册表chrome残留无法删除如何解决
  10. logo设计软件哪个好用?小白也能学会的logo设计小技巧