脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python利用Turtle库绘制一个小老虎

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

2022-09-21 11:06车厘子@ Python

虎年就是要画老虎!本文将通过Python中的Turtle库绘制一个可爱的小老虎,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

导语

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

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

海龟来作图

虎年就是要画老虎

2022不用纸和笔~

今晚画老虎~

一二三四五

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

老虎宝宝示意图

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

虎年怎么能少得了老虎?画只虎头虎脑的可爱老虎,点燃除夕夜。不用纸和笔,就靠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利用Turtle库绘制一个小老虎

用Python画的小老虎

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

原文链接:https://blog.csdn.net/L010409/article/details/122862589

延伸 · 阅读

精彩推荐