用Python画一只小兔子,祝您新年前途似锦,大展宏图

兔年到了,祝大家新年前途似锦!大展宏图!

2021牛年,我用Python画了一头金牛,参考:Python画金牛
2022虎年,我用Python画了一只小老虎,参考:Python画小老虎

今年是第三年,还是一样的方式,今年画一只小兔子,为大家送上祝福。

绘图过程录制成了如下视频,点击视频可以先看到效果。文末提供完整代码获取方式。

视频展示

用Python画一只小兔子

实现方法介绍

本文的绘图工具使用Python标准库turtle库,无需安装,导入即可使用。

部分函数用法介绍(对绘图函数了解可以跳过此部分):

画布设置

  • title(): 设置窗口的标题。
  • bgpic():设置背景图片。
  • setup(width, height, x, y): 设置窗口大小和窗口左上角在屏幕中的位置。
  • shape():设置鼠标的形状。
  • done(): 绘图结束后,不自动关闭窗口。

画笔设置

  • pencolor(color): 设置画笔颜色。
  • width(): 设置画笔宽度。
  • speed(int): 设置画笔的速度,传入1~10的数字,1最慢,10最快。传入其他值会更快,但是没有鼠标移动的动画效果。
  • penup(): 提起画笔,提起后移动画笔不会留下痕迹。
  • pendown(): 落下画笔,开始绘图前先将画笔落下。
  • setx(value): 设置画笔的x轴坐标。
  • sety(value): 设置画笔的y轴坐标。
  • towards(x, y): 设置画笔指向的点。
  • setheading(): 设置画笔的方向。与towards()配合可以设置画笔指向某个点,如setheading(towards(0, 0))可以设置画笔指向原点。
  • pos(): 返回画笔当前的坐标。鼠标移动一段时间后可以print()打印此函数获取鼠标位置。
  • heading(): 返回画笔当前的方向。

画笔操作

  • circle(radius[, extent=arc]): 画一个圆,传入圆的半径,根据画笔的方向控制圆心的位置,圆心与画笔的方向垂直。传入弧度值可以画出指定弧度的圆弧。
  • left(angle): 画笔左转,传入任意一个目标角度。
  • right(angle): 画笔右转。
  • forward(distance): 画笔前进一段距离。
  • backward(distance): 画笔后退一段距离。
  • goto(x, y): 移动画笔到指定坐标。

颜色填充

  • begin_fill(): 开始填充。
  • fillcolor(color): 设置图形中填充的颜色。
  • end_fill(): 结束填充。

具体画图时,调整画笔的起点,设置不同的转角度数和不同的前进长度,可以得到不同形状的弧线,用弧线构成完整的图形。

部分代码

# coding=utf-8
"""
作者:小斌哥ge
公众号: 小斌哥ge
微信:XiaoBinnGe-
发表时间:2023年1月
"""
from turtle import *
import timedef set_start(x, y, w=0.5, c='black'):penup()setx(x)sety(y)setheading(towards(0, 0))width(w)pencolor(c)pendown()speed(0)def left_rotate(time, angle, length):for i in range(time):left(angle)forward(length)def right_rotate(time, angle, length):for i in range(time):right(angle)forward(length)def fill_color(color):def decorator_all(func):def wrapper(*args, **kwargs):begin_fill()func(*args, **kwargs)fillcolor(color)end_fill()return wrapperreturn decorator_alldef fill_color_patch(x, y, c='white'):set_start(x, y, 1, c=c)forward(1)def draw_circle(radius, color, color2=''):if color2 == '':color2 = colorpenup()setheading(towards(0, 0))right(90)pencolor(color)pendown()begin_fill()circle(radius)fillcolor(color2)end_fill()def draw_ear():# 左侧耳朵fill_color_patch(-50, 86, c='#9392B3')begin_fill()set_start(-50, 86, w=4, c='#9392B3')right_rotate(1, 174, 10)right_rotate(5, 5, 15)right_rotate(4, 6, 15)width(3)right_rotate(2, 4, 13)right_rotate(2, 5, 10)left_rotate(3, 9, 12)width(4)right_rotate(1, 128, 10)right_rotate(3, 9.5, 31)right_rotate(5, 7, 25)right_rotate(1, 80, 10)left_rotate(3, 7, 12)fillcolor('white')end_fill()width(3)right_rotate(1, 160, 5)left_rotate(1, 20, 10)left_rotate(3, 8, 20)width(4)left_rotate(1, 2, 15)left_rotate(5, 5, 15)left_rotate(4, 3, 15)fill_color_patch(-35, 105, c='#E6E6FA')begin_fill()set_start(-35, 105, w=1, c='#E6E6FA')right_rotate(1, 170, 10)right_rotate(3, 8, 25)right_rotate(3, 11, 23)right_rotate(1, 130, 20)right_rotate(5, 8, 25)goto(-35, 105)fillcolor('#E6E6FA')end_fill()fill_color_patch(-32, 110, c='#D6D2F6')begin_fill()set_start(-32, 110, w=1, c='#D6D2F6')right_rotate(1, 170, 10)right_rotate(3, 7, 23)right_rotate(3, 11, 20)right_rotate(1, 131, 20)right_rotate(5, 8, 23)goto(-32, 110)fillcolor('#D6D2F6')end_fill()set_start(-48.87, 85.22, w=3, c='#9392B3')setheading(195.67)right_rotate(1, 160, 5)left_rotate(1, 20, 10)left_rotate(3, 8, 20)width(4)left_rotate(1, 2, 15)left_rotate(5, 5, 15)left_rotate(4, 3, 15)# 右侧耳朵fill_color_patch(90, 67, c='#9392B3')begin_fill()set_start(90, 67, w=4, c='#9392B3')left_rotate(1, 180, 10)left_rotate(3, 5, 13)left_rotate(2, 8, 15)left_rotate(3, 6, 15)left_rotate(4, 5, 15)right_rotate(4, 5.5, 8)left_rotate(1, 132, 15)left_rotate(2, 8, 18)left_rotate(5, 5, 18)left_rotate(4, 4, 17)left_rotate(1, 70, 5)right_rotate(3, 5, 8)goto(90, 67)fillcolor('white')end_fill()left_rotate(1, 180, 5)right_rotate(1, 63, 10)left_rotate(4, 2, 12)right_rotate(3, 3, 16)width(3)right_rotate(3, 6, 15)right_rotate(4, 5, 13.5)fill_color_patch(90, 80, c='#E6E6FA')begin_fill()set_start(90, 80, w=1, c='#E6E6FA')left_rotate(1, 175, 10)left_rotate(4, 10, 12)left_rotate(4, 7, 15)right_rotate(4, 5, 9)left_rotate(1, 150, 15)left_rotate(4, 7.5, 15)left_rotate(2, 3, 15)right_rotate(2, 2, 10)left_rotate(2, 7, 12)goto(90, 80)fillcolor('#E6E6FA')end_fill()fill_color_patch(90, 85, c='#D6D2F6')begin_fill()set_start(90, 85, w=1, c='#D6D2F6')left_rotate(1, 175, 10)left_rotate(4, 10, 10)left_rotate(4, 6, 15)right_rotate(4, 5, 7)left_rotate(1, 153, 15)left_rotate(3, 9.5, 15)left_rotate(2, 2, 15)right_rotate(3, 0, 10)goto(90, 85)fillcolor('#D6D2F6')end_fill()set_start(90.00, 67.00, w=4, c='#9392B3')setheading(327.67)left_rotate(1, 180, 5)right_rotate(1, 63, 10)left_rotate(4, 2, 12)right_rotate(3, 3, 16)width(3)right_rotate(3, 6, 15)right_rotate(4, 5, 13.5)def draw_cat():set_start(34, 141, w=1, c='#C65B03')draw_circle(5, '#C65B03', color2='')set_start(33.5, 139, w=1, c='#ED9C22')draw_circle(3, '#ED9C22', color2='')fill_color_patch(-23, 90, c='#850009')begin_fill()set_start(-23, 90, w=2, c='#850009')left_rotate(1, 80, 10)right_rotate(6, 4, 14.2)left_rotate(1, 105, 9)left_rotate(2, 8, 8)width(3)left_rotate(11, 12, 10)width(2)left_rotate(2, 12, 12)goto(-23, 90)fillcolor('#B80705')end_fill()fill_color_patch(46, 110, c='#850009')begin_fill()set_start(46, 110, w=3, c='#850009')right_rotate(1, 145, 9)left_rotate(2, 16, 8)width(2)left_rotate(3, 22, 2)left_rotate(3, 12, 9)goto(46, 110)fillcolor('#E50703')end_fill()fill_color_patch(-23, 90, c='#BE7728')begin_fill()set_start(-23, 90, w=2, c='#BE7728')left_rotate(1, 80, 10)right_rotate(6, 4, 14.2)left_rotate(1, 105, 9)left_rotate(2, 8, 8)width(3)left_rotate(1, 55, 10)left_rotate(2, 5, 15)left_rotate(3, 6.5, 16)width(2)left_rotate(1, 55, 10)left_rotate(2, 10, 8)goto(-23, 90)fillcolor('#E4C127')end_fill()fill_color_patch(20, 98, c='#DC960D')begin_fill()set_start(20, 98, w=1, c='#DC960D')left_rotate(1, 75, 5)left_rotate(2, 12, 5)left_rotate(3, 33, 4)left_rotate(3, 35, 1)right_rotate(3, 28, 2)left_rotate(3, 35, 3)right_rotate(3, 30, 2)left_rotate(3, 45, 2)left_rotate(1, 30, 2)right_rotate(3, 25, 1)left_rotate(3, 45, 2)left_rotate(1, 30, 2)goto(20, 98)fillcolor('#DC960D')end_fill()fill_color_patch(22, 99, c='#839D76')begin_fill()set_start(22, 99, w=1, c='#839D76')left_rotate(1, 25, 0)left_rotate(3, 30, 4)left_rotate(3, 30, 2)left_rotate(3, 30, 4)left_rotate(3, 30, 2)fillcolor('#839D76')end_fill()begin_fill()set_start(24, 99, w=1, c='#398640')left_rotate(1, 25, 0)left_rotate(3, 30, 2.5)left_rotate(3, 30, 2)left_rotate(3, 30, 2.5)left_rotate(3, 30, 2)fillcolor('#398640')end_fill()begin_fill()set_start(25.5, 101, w=1, c='#0ADBC9')left_rotate(1, 25, 0)left_rotate(3, 30, 1.8)left_rotate(3, 30, 1)left_rotate(3, 30, 1.8)left_rotate(3, 30, 1)fillcolor('#0ADBC9')end_fill()def draw_head():fill_color_patch(46, 83, c='#9392B3')begin_fill()set_start(46, 83, w=4, c='#9392B3')left_rotate(1, 105, 10)right_rotate(3, 8, 20)right_rotate(3, 10, 22)right_rotate(1, 13, 15)left_rotate(3, 3, 9)left_rotate(2, 12, 6)left_rotate(1, 30, 5)left_rotate(2, 15, 3)right_rotate(1, 135, 8)right_rotate(3, 8, 8)left_rotate(1, 140, 8)left_rotate(2, 10, 8)right_rotate(1, 130, 8)right_rotate(5, 7.5, 7.5)left_rotate(1, 140, 5)left_rotate(2, 8, 5)right_rotate(1, 125, 5)right_rotate(5, 8, 6)goto(125, -130)set_start(125, -130, w=4, c='#9392B3')left_rotate(1, 78, 10)right_rotate(3, 5, 18)right_rotate(4, 6, 21)right_rotate(5, 5, 18)right_rotate(3, 7, 20)left_rotate(1, 15, 10)right_rotate(2, 5, 6)right_rotate(4, 7, 6.5)right_rotate(1, 130, 5)left_rotate(3, 11, 4.5)left_rotate(1, 140, 7)right_rotate(3, 12, 6)right_rotate(5, 5, 5)right_rotate(1, 130, 5)left_rotate(3, 5, 4)left_rotate(3, 13, 3)left_rotate(1, 120, 8)right_rotate(5, 10, 6.5)right_rotate(1, 95, 5)left_rotate(3, 12, 5)left_rotate(3, 10, 10)right_rotate(3, 5, 12)right_rotate(3, 2, 5)right_rotate(3, 5, 12)right_rotate(4, 5, 13)left_rotate(3, 6, 6)left_rotate(5, 13.5, 7)right_rotate(1, 158, 8)right_rotate(3, 7, 7)right_rotate(5, 15, 5)fillcolor('white')end_fill()if __name__ == '__main__':title('前途似锦(公众号:小斌哥ge)')wide = 800height = 600screensize(wide, height, '#DC0058')setup(wide+30, height+30, 50, 10)shape(name='turtle')time.sleep(2)draw_ear()draw_cat()draw_head()# draw_face()# draw_mouth()# draw_eye()# draw_eyebrow()# draw_nose()# draw_cheek()# draw_forehead()# draw_foot()# draw_body()# draw_hand()# draw_clothes()# draw_jade()set_start(1000, 1000, 2.5)done()

绘图结果

代码获取

代码有1800行,可以用WX关注我,在后台回复关键字“前途似锦”获取完整代码。

声明:转载、二创等使用本文代码,请注明出处。


相关阅读:
用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利
用Python标准库turtle画一头金牛,祝您新年牛气冲天!

用Python画一只小兔子,祝您新年前途似锦,大展宏图相关推荐

  1. 虎年,用Python画一个小老虎,祝大家新年虎虎生威,大吉大利

    虎年到了,祝大家新年快乐!虎虎生威!大吉大利! 前几天有朋友问我,听说学习了Python,万物皆可爬,还可以画画,今年是虎年,可不可以画一只可爱的小脑虎呀- 当然可以的呀 我们先在百度图片里下载一张虎 ...

  2. 用python画小兔子_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  3. 用Python标准库turtle画一头金牛,祝您新年牛气冲天!

    用Python标准库turtle画一头金牛,祝您新年牛气冲天! 今年是牛年,祝大家新年牛气冲天!嗨皮牛Year! 前几天在百度图片里下载了一张金牛的图片,就是上面的这张.想着用Python标准库tur ...

  4. 如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  5. 用python画耳朵_如何用python画一只兔子

    python的用处真的是太广泛了,今天在网上学习查找资料时,看到有网友用python来画画.用python画出一只兔子,为大家分享一下:如何用python画一只兔子? 画了一只大耳朵小兔子,灵感来源是 ...

  6. python画兔子代码_【后端开发】如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  7. 用python画皮卡丘源代码-实现童年宝可梦,教你用Python画一只属于自己的皮卡丘...

    原标题:实现童年宝可梦,教你用Python画一只属于自己的皮卡丘 大数据文摘出品 作者:李雷.蒋宝尚 还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗? 还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模 ...

  8. python简单代码画皮卡丘-实现童年宝可梦,教你用Python画一只属于自己的皮卡丘...

    原标题:实现童年宝可梦,教你用Python画一只属于自己的皮卡丘 大数据文摘出品 作者:李雷.蒋宝尚 还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗? 还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模 ...

  9. 用python画猫咪怎么画-如何用Python画一只机器猫?

    原标题:如何用Python画一只机器猫? 本文经授权转自公众号异步图书 如若转载请联系原公众号 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次 ...

最新文章

  1. Eclipse下编译Android自带联系人应用
  2. 新建一个Windows Service的方法
  3. postgresql 获取所有表名、字段名、字段类型、注释
  4. php 如何单独刷新模板,反馈一个x-admin模板的问题,点击左侧栏不会刷新右侧栏当前页面的问题,并提供解决方案。...
  5. asp.net excel导入 wps_4种Excel格式的转换方法,总有一种适合你!赶紧试试看
  6. matlab虚拟现实之V-Realm Builder2使用NavigationInfo精确定位、建模
  7. xsync 集群同步脚本介绍(拷贝文件不同的部分)
  8. linux服务器学习笔记:linux忘记密码怎么办?
  9. JAVA在线小说电子书阅读系统毕业设计 开题报告
  10. 1.3.9 快速生成树配置
  11. 【卸载神器——Geek】的下载安装使用教程
  12. #SAP论坛•上海# 报名启动
  13. 3DLC系列之:自动匹配颜色
  14. centos系统中perl进程病毒占用大量网络流量导致网络瘫痪的问题分析及解决方案
  15. 云计算OpenStack详解
  16. python中content什么意思_python – 解析html时为什么我需要item.text和item.text_content()其他...
  17. java single threaded_[Java多线程设计模式]读书笔记 - 第一章 Single Threaded Execution
  18. 白领沉迷EXCEL式生存
  19. astah_激活步骤
  20. Can not set java.util.Date field com.atguigu.qqzone.pojo.Topic.topicDate to null value

热门文章

  1. PL/SQL 嵌套declare begin end
  2. 论文翻译 | TOOD:《TOOD: Task-aligned One-stage Object Detection》详细解读
  3. 安卓开发入门gps获取定位经纬度海拔速度
  4. Masonry 比例设置multipliedBy与dividedBy区别
  5. 关于Fatal NI connect error 12170
  6. c++11的regex使用
  7. 定制化和极简主义风格的安卓,看你pick谁?
  8. Springboot+Mybatis接口快速上手
  9. “不一样的六一儿童节”——暨线上公益跳绳颁奖活动圆满结束
  10. 高等数学笔记:定积分相关公式