Python利用Turtle库绘制一个小老虎

 更新时间:2022年02月26日 15:40:54   作者:车厘子@  
虎年就是要画老虎!本文将通过Python中的Turtle库绘制一个可爱的小老虎,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

导语

哈喽铁汁们好久不见吖~小编已经复工了于是马不停蹄赶来给大家准备新年礼物算开工礼物吧!

海龟来作图

虎年就是要画老虎

2022不用纸和笔~

今晚画老虎~

一二三四五

老虎宝宝示意图

虎年怎么能少得了老虎?画只虎头虎脑的可爱老虎,点燃除夕夜。不用纸和笔,就靠Python海龟作图,小朋友赶紧代码敲起来吧!

1.定义库以及初始化界面

def laohu():
    import turtle as t
    # 设置幕布大小及颜色
    t.screensize(50, 50, bg='yellow')
    t.title("老虎宝宝")
    t.shape("classic")
    t.pensize(10)
    t.color("orange")
    t.fillcolor("pink")
    t.speed(100)
    t.hideturtle()

2.画出左右两只耳朵

# 左耳
    t.penup()
    t.goto(-105, 97)
    t.setheading(160)
    t.begin_fill()
    t.pendown()
    t.circle(-30, 230)
    t.setheading(180)
    t.circle(37, 90)
    t.end_fill()
    # 右耳
    t.penup()
    t.goto(105, 97)
    t.setheading(20)
    t.begin_fill()
    t.pendown()
    t.circle(30, 230)
    t.setheading(0)
    t.circle(-37, 90)
    t.end_fill()

3.画出小老虎头部轮廓

# 头部轮廓
    t.penup()
    t.goto(-67, 140)
    t.setheading(30)
    t.pendown()
    t.circle(-134, 60)
 
    t.penup()
    t.goto(-50, -25)
    t.setheading(180)
    t.pendown()
    t.circle(-100, 30)
    t.circle(-30, 90)
    t.setheading(100)
    t.circle(-200, 20)
 
    t.penup()
    t.goto(50, -25)
    t.setheading(0)
    t.pendown()
    t.circle(100, 30)
    t.circle(30, 90)
    t.setheading(80)
    t.circle(200, 20)

4. 画出老虎的两只眼睛

# 两虎眼
    # 左眼
    t.penup()
    t.goto(-90, 25)
    t.setheading(-45)
    t.fillcolor("orange")
    t.begin_fill()
    t.pendown()
    # 椭圆绘制技巧
    a = 0.2
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.1
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.1
            t.lt(3)
            t.fd(a)
    t.end_fill()
 
    t.fillcolor("pink")
    t.penup()
    t.goto(-53, 43)
    t.setheading(0)
    t.begin_fill()
    t.pendown()
    t.circle(19, 360)
    t.end_fill()
 
    t.penup()
    t.pensize(4)
    t.goto(-60, 57)
    t.setheading(30)
    t.pendown()
    t.circle(-12, 60)
    # 右眼
    t.penup()
    t.goto(90, 25)
    t.setheading(45)
    t.pensize(2)
    t.fillcolor("orange")
    t.begin_fill()
    t.pendown()
    # 椭圆绘制技巧
    a = 0.2
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.1
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.1
            t.lt(3)
            t.fd(a)
    t.end_fill()
 
    t.fillcolor("pink")
    t.penup()
    t.goto(53, 43)
    t.setheading(0)
    t.begin_fill()
    t.pendown()
    t.circle(13, 360)
    t.end_fill()
 
    t.penup()
    t.pensize(4)
    t.goto(60, 57)
    t.setheading(150)
    t.pendown()
    t.circle(12, 60)

5.画出老虎的鼻子和嘴巴

# 鼻子和嘴吧
    t.penup()
    t.goto(-16, 20)
    t.setheading(-90)
    t.fillcolor("pink")
    t.begin_fill()
    t.pendown()
    a = 0.2
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.03
            t.lt(3)
            t.fd(a)
        else:
            a = a - 0.03
            t.lt(3)
            t.fd(a)
    t.end_fill()
 
    t.penup()
    t.goto(-24, 0)
    t.setheading(-60)
    t.pendown()
    t.circle(28, 120)

6.画出小老虎的左右肢体和脚趾

# 小老虎肢体
    # 左肢
    t.color("orange")
    t.penup()
    t.goto(-65, -24)
    t.setheading(-140)
    t.begin_fill()
    t.pendown()
    t.circle(100, 40)
    t.setheading(180)
    t.circle(30, 40)
    t.setheading(-40)
    t.circle(40, 40)
    t.setheading(-150)
    a = 0.5
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.05
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        elif 30 <= i < 60 or 90 <= i < 100:
            a = a - 0.05
            t.lt(3)
            t.fd(a)
    t.setheading(93)
    t.circle(-150, 30)
    t.end_fill()
 
    t.penup()
    t.goto(-85, -115)
    t.setheading(-150)
    t.color("pink", "pink")
    t.begin_fill()
    t.pendown()
    a = 0.3
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.03
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.03
            t.lt(3)
            t.fd(a)
    t.end_fill()
 
    # 每个脚趾绘制函数
 
    def toe(x, y):
        t.begin_fill()
        t.goto(x, y)
        t.circle(3, 360)
        t.end_fill()
 
    t.penup()
    toe(-98, -120)
    toe(-96, -110)
    toe(-88, -105)
    toe(-80, -105)
 
    # 右肢
    t.color("orange")
    t.penup()
    t.goto(65, -24)
    t.setheading(-40)
    t.begin_fill()
    t.pendown()
    t.circle(-100, 40)
    t.setheading(0)
    t.circle(-30, 40)
    t.setheading(-140)
    t.circle(-40, 40)
    t.setheading(-30)
    a = 0.5
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.05
            t.rt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        elif 30 <= i < 60 or 90 <= i < 100:
            a = a - 0.05
            t.rt(3)
            t.fd(a)
    t.setheading(87)
    t.circle(150, 30)
    t.end_fill()
 
    t.penup()
    t.goto(85, -115)
    t.setheading(150)
    t.color("pink", "pink")
    t.begin_fill()
    t.pendown()
    a = 0.3
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.03
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.03
            t.lt(3)
            t.fd(a)
    t.end_fill()
 
    t.penup()
    toe(98, -120)
    toe(96, -110)
    toe(88, -105)
    toe(80, -105)

7.在需要的位置写上我们的新年祝福

t.goto(-57, -140)
    t.color("orange")
    t.setheading(-20)
    t.pendown()
    t.circle(165, 40)
    t.penup()
    t.goto(0, 180)
    t.write("祝大家虎年快乐,虎虎生威!",
            align="center", font=("Times", 28, "bold"))
 
    t.color("black")
    t.penup()
    t.goto(0, 80)
    t.write("王",
            align="center", font=("Times", 38, "bold"))
    t.penup()
    t.goto(0, -5)
    t.write("一                   一",
            align="center", font=("Times", 18, "bold"))
    t.goto(0, -15)
    t.write("一                   一",
            align="center", font=("Times", 18, "bold"))
    t.goto(0, -25)
    t.write("一                   一",
            align="center", font=("Times", 18, "bold"))

8. 显示倒数3,2,1

#显示倒数3,2,1
def draw_0(i):
    turtle.screensize(50, 50, bg='yellow')
    turtle.speed(0)
    turtle.penup()
    turtle.hideturtle()  # 隐藏箭头显示
    turtle.goto(-50, -100)
    turtle.color('red')
    write = turtle.write(i, font=('宋体', 200, 'normal'))
    time.sleep(1)

9.显示我们需要的文字

# 显示文字
def draw_1():
    turtle.penup()
    turtle.hideturtle()    #隐藏箭头显示
    turtle.goto(-410, 0)
    turtle.color('red')
    write = turtle.write('叮咚~新年礼物到啦💕', font=('宋体', 60, 'normal'))
    time.sleep(2)

10.设定代码运行入口,调用目标函数

number=[3,2,1]    #储存显示界面倒数数字1,2,3
if __name__ == '__main__':
    turtle.setup(900, 500)     #调画布的尺寸
    for i in number:
        turtle.screensize(50, 50, bg='yellow')
        draw_0(i)
        clear_screen()
    turtle.screensize(50, 50, bg='yellow')
    draw_1()
    clear_screen()
    turtle.screensize(50, 50, bg='yellow')
    laohu()
    time.sleep(5)
    threads = []
    for i in range(100):  # 需要的弹框数量
        t = threading.Thread(target=dow)
        threads.append(t)
        time.sleep(0.01)
        threads[i].start()

成果展示

用Python画的小老虎

以上就是Python利用Turtle库绘制一个小老虎的详细内容,更多关于Python Turtle绘制老虎的资料请关注脚本之家其它相关文章!

相关文章

  • python基础教程之csv文件的写入与读取

    python基础教程之csv文件的写入与读取

    CSV即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符,下面这篇文章主要给大家介绍了关于python基础教程之csv文件的写入与读取的相关资料,需要的朋友可以参考下
    2022-08-08
  • python selenium.webdriver 爬取政策文件的实现

    python selenium.webdriver 爬取政策文件的实现

    本文主要介绍了python selenium.webdriver 爬取政策文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python time模块定时器由浅入深应用实例

    python time模块定时器由浅入深应用实例

    Python提供了多种实现定时任务的方法,从简单到复杂,包括使用标准库time模块的基础定时,threading或asyncio模块的多线程/异步定时,以及第三方库如APScheduler的高级定时任务调度
    2024-01-01
  • Python中的魔术方法Magic Methods使用实例全面指南

    Python中的魔术方法Magic Methods使用实例全面指南

    在Python中,魔术方法Magic Methods是一种特殊的方法,它们以双下划线开头和结尾,如__init__、__str__等,这些方法允许定制类的行为,使得对象更具有灵活性和可定制性,本文将深入探讨Python中一些常用的魔术方法,以及如何使用它们来定制类与对象
    2024-01-01
  • Python中多线程及程序锁浅析

    Python中多线程及程序锁浅析

    这篇文章主要介绍了Python中多线程及程序锁浅析,本文用一个实例讲解Python的多线程和程序锁,需要的朋友可以参考下
    2015-01-01
  • pandas的qcut()方法详解

    pandas的qcut()方法详解

    这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • TensorFlow梯度求解tf.gradients实例

    TensorFlow梯度求解tf.gradients实例

    今天小编就为大家分享一篇TensorFlow梯度求解tf.gradients实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python解析Chrome浏览器历史浏览记录和收藏夹数据

    python解析Chrome浏览器历史浏览记录和收藏夹数据

    大家好,本篇文章主要讲的是python解析Chrome浏览器历史浏览记录和收藏夹数据,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 详解Python中的上下文管理器原理

    详解Python中的上下文管理器原理

    这篇文章主要为大家详细介绍了Python中的上下文管理器的原理与使用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • 解决Python 出现File “<stdin>“, line 1非语法错误的问题

    解决Python 出现File “<stdin>“, line 1非语法错误的问题

    这篇文章主要介绍了Python 出现File “<stdin>“, line 1非语法错误的解决办法,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论