有趣的Python-turtle Python标准库 turtle 模块的使用及作品介绍

1 介绍

       turtle 是 Python 中用来绘图的标准库(Python解释器在安装后import直接使用),它简单且有趣,作为 Python初学者  都可以将它作为第一个学习对象,培养程序学习的兴趣,建立编程带来的成就感,这才是更好的坚持下去。


2 基本使用

1、创建画布

- 操作步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

        turtle.setup(宽度, 高度)   - 设置画布的宽度和高度
        turtle.title(标题)    - 设置标题

  3 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600) # 设置窗口大小:800*600
tt.title("ITB业生") # 设置窗口标题
# 3 循环画布
tt.mainloop()

- 效果实现


2、设置画笔

- 操作步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

         turtle.pencolor(颜色)    - 设置画笔画出的线条的颜色
          turtle.width(线宽)         - 设置线条的线宽
          turtle.speed(速度值)     - 设置笔移动的速度(速度值是1-10逐渐变快;0 对应的速度最慢)

4 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red') # 设置画笔的颜色:红色
tt.width(4) # 设置画笔的线宽:4
tt.speed(1) # 设置画笔移动速度:1
 
# 4 循环画布
tt.mainloop()

- 效果实现

- 说明:画笔默认的位于在 画布的中心【原点(0,0)】位置,反向默认是水平向右。


3、控制画笔移动

- 操作步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 控制移动画笔(前进/后退、位置)

        turtle.forward(距离) / turtle.fd(距离)     - 控制笔前进指定距离
        turtle.back(距离)/turtle.bk(距离)           - 控制笔后退指定距离
        turtle.goto(x坐标, y坐标)/ turtle.setx(x坐标) / turtle.sety(y坐标)    - 控制笔移动到指定位置(坐标原点在画布的中心)
        turtle.home()                                        - 笔回到初始状态(回到初始位置和初始方向)

  5 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 移动画笔(前进/后退、位置)
tt.goto(-50, -50) # 移动(-50, -50)
tt.forward(150) # 前进150
tt.width(2) # 设置画笔线宽:2
tt.pencolor('green') # 设置画笔颜色为绿色
tt.goto(100, 100) # 移动(100, 100)
tt.back(100) # 前进100
tt.home() # 回到初始位置
# 5 循环画布
tt.mainloop()

- 效果实现

- 说明

   1、画笔的方向 默认水平向右,所以前进的时候笔是往右移动的,后退笔向左移动。

   2、在移动之前改变笔的方向,前进和后退的代码就会改变移动轨迹。


4、控制画笔方向

- 操作步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 控制移动画笔(前进/后退、位置)

  5 控制画笔的方向(旋转)

        turtle.left(角度) - 向左旋转指定角度
        turtle.right(角度) - 向右旋转指定角度
        turtle.setheading(角度) - 设置绝对角度值指定度数

  6 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 移动画笔(前进/后退、位置)
tt.goto(0, 100) # 移动(100, 100)
# 5 控制画笔的方向(旋转)
tt.forward(120) # 前进120
tt.right(90) # 向右旋转90度
tt.pencolor('green') # 设置画笔的颜色:绿色
tt.forward(150) # 前进150
tt.left(90) # 向左旋转90度
tt.pencolor('blue') # 设置画笔的颜色:蓝色
tt.forward(120) # 前进120
tt.right(90) # 向右旋转90度
tt.pencolor('purple') # 设置画笔的颜色:蓝色
tt.forward(120) # 前进120
# 6 循环画布
tt.mainloop()

- 效果实现

5、落笔与抬笔

- 说明

        在通过  turtle.goto 方法移动到某一个位置,则会在画笔移动中留下痕迹,则可以通过落笔与抬笔,则可以消除画笔痕迹(想想与生活中使用笔写字一样的)


- 操作步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 设置抬笔与落笔 

        turtle.up() - 抬起笔
        turtle.down() - 放下笔

  5 控制移动画笔(前进/后退、位置)

  6 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 设置抬笔与落笔
tt.up() # 抬笔
# 5 移动画笔(前进/后退、位置)
tt.goto(0, 100) # 移动(0, 100)
tt.down() # 落笔
tt.forward(100)
tt.up() # 抬笔
tt.goto(-120, 100)
tt.pencolor('pink')
tt.down() # 落笔
tt.back(120)
# 6 循环画布
tt.mainloop()

- 效果实现

6、绘制圆

- 实现步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 设置抬笔与落笔 

  5 控制移动画笔(前进/后退、位置)

  6 绘制圆(圆环、圆弧、实心圆)

        turtle.circle(半径)                    - 画一个完整的圆环
        turtle.circle(半径, 角度)         - 画指定角度对应的圆弧 
        turtle.dot(直径, 颜色)            - 直径为指定值的画实心圆及颜色

  7 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 设置抬笔与落笔
tt.up() # 抬笔
# 5 移动画笔(前进/后退、位置)
tt.goto(0, 100) # 移动(0, 100)
tt.down() # 落笔
# 6 绘制圆(圆环、圆弧、实心圆)
# --------------- 绘制圆环 -------------------
tt.circle(50) # 绘制半径为50的圆形
# --------------- 绘制圆弧 -------------------
tt.up()
tt.pencolor('blue')
tt.goto(-50, -100) # 移动(-50, -100)
tt.down()
tt.circle(60, -180) # 绘制半径为60的圆形,弧度为-180
# --------------- 绘制实心圆 -------------------
tt.up()
tt.pencolor('green')
tt.goto(100, 200) # 移动(100, 200)
tt.down()
tt.dot(80, 'orange') # 绘制半径为90的圆形,填充为橙色
# 7 循环画布
tt.mainloop()

- 效果实现

7、颜色填充

- 实现步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 设置抬笔与落笔 

  5 控制移动画笔(前进/后退、位置)

  6 设置开始与结束填充 

        turtle.fillcolor(颜色)         - 设置填充颜色
        turtle.begin_fill()              - 开始填充
        turtle.end_fill()               - 结束填充

  7 绘制形状

  8 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 设置抬笔与落笔
tt.up() 
# 5 移动画笔(前进/后退、位置)
tt.goto(0, 100) 
tt.down() 
# 6 设置开始与结束填充
tt.fillcolor('pink') # 设置填充颜色
tt.begin_fill() # 开始填充
# 7 绘制形状
tt.forward(100)
tt.left(60)
tt.forward(100)
tt.left(120)
tt.forward(100)
tt.left(120)
tt.forward(100)
tt.end_fill() # 结束填充
# 8 循环画布
tt.mainloop()

- 效果实现


8、添加文字

- 实现步骤

  1 导入turtle

  2 创建画布(设置画布宽高与窗口标题)

  3 设置画笔(颜色、线宽、速度)

  4 添加文字

        turtle.write(文字内容, font=(字体名称, 字体大小, 文字类型))

                文字类型:normal(常规)、bold(加粗)、italic(倾斜)

  5 循环画布


- 代码实现

# 1 导入turtle
import turtle as tt
# 2 创建画布(设置画布宽高与窗口标题)
tt.setup(800, 600)
tt.title("ITB业生")
# 3 设置画笔(颜色、线宽、速度)
tt.pencolor('red')
tt.width(4)
tt.speed(1)
# 4 添加文字
# 文字内容:欢迎关注:ITB业生,字体为:微软雅黑、20号、倾斜
tt.write("欢迎关注:ITB业生", font=("微软雅黑", 20, "italic"))
# 5 循环画布
tt.mainloop()

- 效果实现

3 作品展示

1 小猪佩奇

- 作品展示

- 代码实现

from turtle import *
def nose(x, y): # 鼻子
 penup() # 提起笔
 goto(x, y) # 定位
 pendown() # 落笔,开始画
 setheading(-30) # 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
 begin_fill() # 准备开始填充图形
 a = 0.4
 for i in range(120):
 if 0 

2 小老虎

- 作品展示

- 代码实现

from turtle import *
import time
COLOR = '#B2814D'
def set_start(x, y, w, c=COLOR): # 设置画笔位置、线宽、颜色
 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 draw_circle(radius, color, color2=''): # 设置圆形的半径及颜色
 if color2 == '':
 color2 = color
 penup()
 setheading(towards(0, 0))
 right(90)
 pencolor(color)
 pendown()
 begin_fill()
 circle(radius)
 fillcolor(color2)
 end_fill()
def fill_color(color): # 设置填充颜色
 def decorator_all(func):
 def wrapper(*args, **kwargs):
 begin_fill()
 func(*args, **kwargs)
 fillcolor(color)
 end_fill()
 return wrapper
 return decorator_all
def fill_color_patch(x, y, c='#fffffb'): # 设置开始填充
 set_start(x, y, 1, c=c)
 forward(1)
def head_outline(): # 虎头外观绘制
 set_start(0, -40, 2.5)
 right(90)
 left_rotate(5, 3, 14)
 left_rotate(5, 8, 8)
 left_rotate(10, 5, 6.5)
 left_rotate(5, 5.5, 10)
 left_rotate(25, 4, 10)
 left_rotate(6, 5.5, 5)
 left_rotate(7, 3, 7)
 left_rotate(5, 10, 8)
 left_rotate(5, 3, 14)
@fill_color('#fdb933')
def draw_head(): # 虎头绘制
 head_outline()
 pencolor('#CDCDCD')
 goto(0, -40)
@fill_color('#fffffb')
def draw_face(): # 绘制虎脸
 set_start(0, -40, 2.5)
 right(90)
 left_rotate(5, 3, 14)
 left_rotate(1, 80, 2.5)
 pencolor('#fffffb')
 left_rotate(12, 5, 6.5)
 left_rotate(5, 6, 15)
 left_rotate(5, 5, 10)
 left_rotate(5, 12, 10)
 backward(0.5)
 left(65)
 pencolor(COLOR)
 backward(3)
 left_rotate(5, 3, 14)
 forward(5)
def draw_moustache(): # 绘制胡须
 fill_color_patch(-41, -31)
 begin_fill()
 set_start(-41, -31, 2.5)
 right(180)
 left_rotate(4, 20, 4)
 left_rotate(1, 90, 8)
 right(150)
 left_rotate(4, 25, 3)
 forward(6)
 left_rotate(1, 110, 5.5)
 right(165)
 left_rotate(4, 15, 3.2)
 left(150)
 right_rotate(3, 30, 2.2)
 right_rotate(1, 105, 5)
 left(130)
 right_rotate(6, 5, 1.8)
 right_rotate(1, 130, 2)
 left(60)
 left_rotate(2, 30, 1)
 left_rotate(4, 28, 4)
 fillcolor('#fffffb')
 end_fill()
 set_start(-45, -28, 2.5)
 right(70)
 left_rotate(5, 2.5, 4)
 left_rotate(4, 9, 3)
 left_rotate(5, 3, 4.5)
def draw_mouth(): # 绘制虎嘴
 set_start(-17, 22, 2.5)
 right_rotate(1, 45, 14)
 left_rotate(1, 85, 35)
 left_rotate(1, 70, 7)
 set_start(-17, 22, 2.5)
 right_rotate(1, 45, 14)
 right_rotate(1, 78, 36)
 right_rotate(1, 65, 6)
 set_start(-17, 22, 2.5)
 right_rotate(1, 45, 14)
 left_rotate(1, 85, 30)
 right_rotate(1, 108, 12)
 right_rotate(1, 140, 5)
 set_start(-17, 22, 2.5)
 right_rotate(1, 45, 14)
 right_rotate(1, 75, 28)
 left_rotate(1, 85, 10)
 left_rotate(1, 130, 8)
 set_start(3, 0, 2.5)
 left(90)
 right_rotate(5, 5, 4.8)
 right_rotate(4, 18, 1.8)
 left_rotate(1, 3, 27)
 right_rotate(4, 18, 1)
 right_rotate(1, 15, 22)
 right(88)
 right_rotate(9, 1, 4.5)
 begin_fill()
 set_start(3, 0, 2.5)
 left(90)
 right_rotate(4, 5, 4.8)
 right_rotate(1, 5, 2)
 right_rotate(1, 67, 37)
 right_rotate(1, 86, 18)
 fillcolor('#f15a22')
 end_fill()
 begin_fill()
 set_start(3, 0, 2.5)
 pencolor('#aa2116')
 left(90)
 right_rotate(2, 5, 6)
 right(120)
 left_rotate(10, 6, 2)
 right(55)
 left_rotate(11, 5.5, 1.8)
 right_rotate(1, 110, 10)
 right(100)
 right_rotate(9, 1, 4.5)
 fillcolor('#aa2116')
 end_fill()
 set_start(3, 0, 2.5)
 left(90)
 right_rotate(5, 5, 4.8)
 right_rotate(4, 18, 1.8)
 left_rotate(1, 3, 27)
 right_rotate(4, 18, 1)
 right_rotate(1, 15, 22)
 right(88)
 right_rotate(9, 1, 4.5)
 set_start(21, 10, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
 set_start(10, 16, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
 set_start(21, 19, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
 set_start(-57, 16, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
 set_start(-51, 24, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
 set_start(-64, 24, 1, c='#fdb933')
 draw_circle(2.3, '#fdb933')
def draw_nose(): # 绘制虎鼻
 set_start(6, 37, 1)
 pencolor('#e0861a')
 right(150)
 begin_fill()
 left_rotate(6, 3, 4)
 left_rotate(6, 15, 3)
 left_rotate(6, 3, 4)
 fillcolor('#e0861a')
 end_fill()
 set_start(6, 37, 1.5)
 right(120)
 begin_fill()
 left_rotate(5, 4, 4)
 left_rotate(3, 10, 3)
 left_rotate(5, 4, 4)
 left_rotate(7, 15, 0.8)
 left_rotate(5, 4, 4)
 left_rotate(5, 8, 2)
 left_rotate(5, 4, 4)
 left_rotate(7, 15, 0.8)
 fillcolor('#b4532a')
 end_fill()
 set_start(-16, 36, 1)
 pencolor('#d1923f')
 right(75)
 begin_fill()
 right_rotate(4, 15, 2)
 right_rotate(5, 26, 1)
 right_rotate(4, 15, 2)
 right_rotate(5, 26, 1)
 fillcolor('#d1923f')
 end_fill()
 set_start(-25, 25, 1)
 pencolor('#130c0e')
 left(110)
 begin_fill()
 left_rotate(6, 15, 1.5)
 left_rotate(5, 15, 1)
 fillcolor('#130c0e')
 end_fill()
 set_start(-10, 24, 1)
 pencolor('#130c0e')
 left(175)
 begin_fill()
 right_rotate(6, 15, 1.2)
 right_rotate(5, 15, 1)
 fillcolor('#130c0e')
 end_fill()
def draw_eye(): # 绘制虎眼
 set_start(-50, 34, 1, c='#130c0e')
 left(115)
 begin_fill()
 left_rotate(8, 6.5, 7)
 left_rotate(5, 15, 7)
 left_rotate(5, 10, 5.5)
 left_rotate(5, 15, 6)
 left_rotate(5, 5, 9.5)
 left_rotate(4, 30, 2)
 fillcolor('#130c0e')
 end_fill()
 set_start(-57, 40, 1, c='#fffffb')
 left(112)
 begin_fill()
 left_rotate(8, 6.5, 5)
 left_rotate(5, 15, 6)
 left_rotate(5, 10, 4.5)
 left_rotate(5, 15, 5)
 left_rotate(5, 6.5, 7)
 left_rotate(4, 15, 2)
 fillcolor('#fffffb')
 end_fill()
 set_start(-90, 62, 1, c='#563624')
 draw_circle(15, '#563624')
 set_start(-84, 59, 1, c='#130c0e')
 draw_circle(9, '#130c0e')
 set_start(-90, 63, 1, c='#fffffb')
 draw_circle(3.5, '#fffffb')
 set_start(16, 25, 1, c='#130c0e')
 right(150)
 begin_fill()
 right_rotate(8, 6.5, 7)
 right_rotate(5, 15, 7)
 right_rotate(5, 10, 5.5)
 right_rotate(5, 15, 6)
 right_rotate(5, 5, 9.5)
 right_rotate(4, 30, 2)
 fillcolor('#130c0e')
 end_fill()
 set_start(24, 28, 1, c='#fffffb')
 right(135)
 begin_fill()
 right_rotate(8, 7, 5)
 right_rotate(5, 15, 5.5)
 right_rotate(5, 10, 4.5)
 right_rotate(5, 15, 4.5)
 right_rotate(5, 6.5, 6.5)
 right_rotate(4, 13, 2)
 fillcolor('#fffffb')
 end_fill()
 set_start(57, 48, 1, c='#563624')
 draw_circle(15, '#563624')
 set_start(53, 44, 1, c='#130c0e')
 draw_circle(9, '#130c0e')
 set_start(38, 47, 1, c='#fffffb')
 draw_circle(3.5, '#fffffb')
def draw_brow(): # 绘制虎额头
 set_start(12, 88, 1, c='#130c0e')
 right(82)
 begin_fill()
 left_rotate(3, 3, 5)
 right_rotate(5, 4, 6)
 right_rotate(7, 24, 2.3)
 right_rotate(3, 5, 4.5)
 left_rotate(1, 90, 8)
 left(95)
 left_rotate(3, 8, 5)
 right_rotate(3, 25, 1.2)
 right_rotate(3, 11, 1.5)
 right_rotate(3, 25, 1.2)
 right_rotate(3, 3, 4.5)
 left_rotate(1, 85, 7)
 left_rotate(1, 90, 15)
 right_rotate(5, 30, 2.2)
 right_rotate(3, 9, 6)
 right_rotate(6, 3, 5)
 right_rotate(8, 18, 1.3)
 right_rotate(3, 10, 5.3)
 left_rotate(1, 90, 8)
 left(112)
 right_rotate(3, 3, 4.5)
 right_rotate(3, 25, 1)
 right_rotate(3, 10, 1.5)
 right_rotate(3, 28, 1)
 left_rotate(3, 5, 3)
 left_rotate(3, 25, 1)
 left_rotate(3, 5, 1.8)
 left_rotate(1, 90, 17)
 right_rotate(3, 35, 0.8)
 right_rotate(3, 10, 3)
 fillcolor('#130c0e')
 end_fill()
 set_start(88, -16, 1, c='#130c0e')
 begin_fill()
 right_rotate(5, 15, 3)
 right_rotate(4, 5.5, 3)
 right_rotate(3, 28, 1)
 right_rotate(5, 6, 4)
 fillcolor('#130c0e')
 end_fill()
 set_start(106, 9, 1, c='#130c0e')
 right(15)
 begin_fill()
 right_rotate(5, 5, 5.5)
 right_rotate(5, 29, 3)
 right_rotate(5, 5, 4.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(110, 36, 1, c='#130c0e')
 left(20)
 begin_fill()
 right_rotate(3, 10, 2)
 right_rotate(3, 10, 6)
 right_rotate(5, 29, 2)
 forward(20)
 fillcolor('#130c0e')
 end_fill()
 set_start(75, 76, 1, c='#130c0e')
 right(105)
 begin_fill()
 left_rotate(5, 10, 4)
 right_rotate(6, 28, 2)
 right_rotate(5, 10, 5)
 right_rotate(6, 25, 2)
 fillcolor('#130c0e')
 end_fill()
 set_start(-75, 100, 1, c='#130c0e')
 right(108)
 begin_fill()
 right_rotate(3, 3, 8)
 right_rotate(4, 35, 2)
 right_rotate(8, 9, 3.2)
 fillcolor('#130c0e')
 end_fill()
 set_start(-145, 58, 1, c='#130c0e')
 right(30)
 begin_fill()
 left_rotate(5, 15, 5)
 left_rotate(3, 18, 3)
 left(92)
 right_rotate(4, 5, 6)
 right_rotate(1, 5, 4)
 fillcolor('#130c0e')
 end_fill()
 set_start(-148, 46, 1, c='#130c0e')
 left(40)
 begin_fill()
 right_rotate(5, 10, 6.5)
 right_rotate(4, 32, 2)
 right_rotate(4, 10, 6.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(-138, 7, 1, c='#130c0e')
 left(10)
 begin_fill()
 left_rotate(5, 8, 4)
 left_rotate(6, 20, 1.5)
 left_rotate(4, 8, 4.5)
 fillcolor('#130c0e')
 end_fill()
 head_outline()
def draw_ear(): # 绘制虎耳朵
 set_start(101, 74, 2.5)
 left(150)
 begin_fill()
 left_rotate(5, 6, 3)
 left_rotate(5, 12, 5)
 left_rotate(3, 13, 12)
 left_rotate(5, 12, 7)
 left_rotate(4, 16, 5)
 fillcolor('#fdb933')
 end_fill()
 set_start(94, 89, 1, c='#f3715c')
 right(168)
 begin_fill()
 left_rotate(5, 17, 6)
 left_rotate(4, 20, 5)
 goto(94, 89)
 fillcolor('#f3715c')
 end_fill()
 set_start(-125, 98, 2.5)
 right(165)
 begin_fill()
 right_rotate(5, 6, 3)
 right_rotate(5, 12, 5)
 right_rotate(3, 13, 12)
 right_rotate(5, 12, 7)
 right_rotate(4, 16, 4.5)
 fillcolor('#fdb933')
 end_fill()
 set_start(-115, 110, 1, c='#f3715c')
 left(160)
 begin_fill()
 right_rotate(5, 17, 6)
 right_rotate(4, 20, 5.5)
 goto(-115, 110)
 fillcolor('#f3715c')
 end_fill()
 head_outline()
def draw_cap(): # 绘制虎帽子
 set_start(55, 123, 2.5)
 right(150)
 left_rotate(13, 11, 12)
 set_start(18, 170, 2.5)
 right(180)
 begin_fill()
 left_rotate(10, 16, 4)
 fillcolor('#130c0e')
 end_fill()
 set_start(55, 123, 2.5)
 right(150)
 begin_fill()
 left_rotate(13, 11, 12)
 fillcolor('#FF0000')
 end_fill()
 set_start(55, 123, 2.5)
 right(113)
 begin_fill()
 left_rotate(15, 5, 8.6)
 fillcolor('#228B22')
 end_fill()
 set_start(30, 142, 2.5)
 right(170)
 left_rotate(18, 8.9, 5)
 set_start(-2, 150, 2.5)
 left(178)
 right_rotate(4, 5, 6)
 set_start(55, 123, 2.5)
 begin_fill()
 goto(50.13, 124.56)
 setheading(148.5)
 left_rotate(12, 4, 10)
 fillcolor('#fdb933')
 end_fill()
def draw_shadow(): # 添加阴影
 fill_color_patch(75, -155)
 _draw_shadow()
@fill_color('#fab27b')
def _draw_shadow(): # 为虎周围添加阴影
 set_start(75, -155, 1, c='#fab27b')
 left_rotate(5, 8, 5)
 left_rotate(10, 4, 10)
 left_rotate(5, 6, 9)
 left_rotate(4, 30, 4.5)
 left_rotate(5, 3.5, 16)
 left_rotate(3, 3.5, 18)
 left_rotate(3, 8, 5)
 left_rotate(4, 20, 1.5)
 goto(75, -155)
def draw_body(): # 绘制虎身
 fill_color_patch(0, -40)
 set_start(0, -40, 2.5)
 right(90)
 begin_fill()
 left_rotate(2, 3, 14)
 width(2.4)
 goto(53, -74)
 pencolor('#87481f')
 left(20)
 right_rotate(5, 16, 1.3)
 right_rotate(4, 8, 8)
 right_rotate(1, 15, 2)
 right_rotate(1, 30, 7)
 right_rotate(3, 28, 2)
 right_rotate(1, 5, 4)
 right_rotate(1, 90, 6)
 right_rotate(1, 180, 10)
 right_rotate(3, 5, 8)
 right_rotate(3, 10, 6.5)
 right_rotate(2, 15, 2)
 right_rotate(4, 7, 4.5)
 left_rotate(2, 18, 1)
 left_rotate(4, 12, 5)
 left_rotate(4, 15, 3)
 left_rotate(4, 7, 4)
 right_rotate(1, 82, 2)
 right_rotate(4, 8, 7)
 right_rotate(2, 12, 2)
 right_rotate(4, 28, 1.5)
 right_rotate(1, 10, 6)
 right_rotate(1, 60, 4.5)
 right(170)
 right_rotate(5, 10, 5)
 right_rotate(10, 2.5, 5)
 goto(-71.81, -32.68)
 setheading(345.5)
 width(2.5)
 pencolor(COLOR)
 left_rotate(2, 3, 14)
 fillcolor('#fdb933')
 end_fill()
 set_start(0, -42, 1)
 right(90)
 pencolor('#fffffb')
 begin_fill()
 right_rotate(5, 12, 5)
 right_rotate(3, 13, 15)
 right_rotate(3, 25, 12)
 backward(1)
 right(23)
 left_rotate(3, 15, 6)
 right(5)
 right_rotate(3, 20, 11)
 right_rotate(3, 15, 12)
 right_rotate(3, 15, 10)
 right_rotate(1, 15, 20)
 fillcolor('#fffffb')
 end_fill()
 set_start(37, -125, 1)
 pencolor('#130c0e')
 begin_fill()
 right_rotate(1, 5, 8)
 right_rotate(4, 30, 1.5)
 right_rotate(1, 20, 6)
 fillcolor('#130c0e')
 end_fill()
 set_start(29, -130, 1)
 pencolor('#130c0e')
 begin_fill()
 left(20)
 right_rotate(2, 5, 5)
 left_rotate(4, 30, 1.5)
 left_rotate(2, 10, 4)
 right_rotate(3, 20, 2)
 left(155)
 left_rotate(3, 8, 5)
 fillcolor('#130c0e')
 end_fill()
 set_start(-62, -139, 1)
 pencolor('#130c0e')
 begin_fill()
 right(65)
 left_rotate(2, 10, 4)
 left_rotate(3, 25, 1.5)
 left_rotate(1, 10, 2)
 left_rotate(3, 28, 1.5)
 right_rotate(3, 10, 3.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(-71, -118, 1)
 pencolor('#130c0e')
 begin_fill()
 right(50)
 left_rotate(4, 10, 2.5)
 left_rotate(5, 28, 1.5)
 right_rotate(3, 10, 2.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(-75, -94, 1)
 pencolor('#130c0e')
 begin_fill()
 right(30)
 left_rotate(4, 10, 2.5)
 left_rotate(5, 28, 1.5)
 right_rotate(3, 10, 2.5)
 fillcolor('#130c0e')
 end_fill()
def draw_left_hand(): # 绘制虎左手
 set_start(0, -40, 2.5)
 right(90)
 left_rotate(4, 3, 14)
 left_rotate(1, 3, 8)
 right_rotate(1, 33, 3)
 begin_fill()
 left_rotate(1, 0, 4)
 left_rotate(3, 7, 7)
 left_rotate(4, 18, 3.8)
 set_start(103, -26, 2.5)
 right_rotate(3, 20, 4.5)
 right_rotate(3, 20, 2.5)
 right_rotate(2, 20, 2)
 right_rotate(2, 18, 5)
 right_rotate(5, 30, 1.5)
 right_rotate(1, 5, 8)
 right_rotate(1, 180, 2)
 right_rotate(2, 40, 3.5)
 set_start(106, -8, 2.5)
 right(90)
 right_rotate(2, 10, 4)
 right_rotate(4, 24, 3)
 right_rotate(2, 10, 4)
 right_rotate(2, 20, 5)
 right_rotate(5, 26, 1.2)
 right_rotate(2, 10, 4)
 right_rotate(1, 190, 4)
 right_rotate(1, 90, 3)
 set_start(128, -12, 2.5)
 left(155)
 right_rotate(3, 20, 5.5)
 right_rotate(2, 25, 1.5)
 right_rotate(1, 25, 4)
 right_rotate(3, 25, 2)
 right_rotate(2, 10, 3)
 set_start(124, -30, 2.5)
 left(150)
 right_rotate(8, 25, 2)
 right_rotate(1, 15, 3)
 right_rotate(2, 28, 2)
 set_start(115, -35, 2.5)
 left(100)
 right_rotate(5, 26, 1.8)
 right_rotate(1, 25, 5)
 set_start(103, -31, 2.5)
 left(135)
 right_rotate(5, 10, 5)
 right_rotate(4, 15, 6)
 left_rotate(1, 100, 7)
 right(120)
 right_rotate(3, 12, 2.5)
 left(170)
 right_rotate(3, 15, 3)
 right(110)
 right_rotate(3, 12, 3)
 left(140)
 right_rotate(3, 12, 3)
 right(120)
 right_rotate(3, 10, 3.5)
 left_rotate(1, 125, 10)
 right_rotate(3, 23, 3)
 right_rotate(3, 9, 9.5)
 fillcolor('#fdb933')
 end_fill()
 set_start(115, -35, 2.5)
 left(100)
 begin_fill()
 right_rotate(5, 26, 1.8)
 right_rotate(1, 25, 5)
 pencolor('#fffffb')
 width(1)
 left(90)
 right_rotate(4, 40, 2)
 left(90)
 right_rotate(4, 40, 1)
 left_rotate(1, 135, 5)
 right(80)
 right_rotate(3, 26, 4.5)
 right(130)
 left_rotate(3, 28, 3)
 fillcolor('#fffffb')
 end_fill()
 set_start(61, -33, 1)
 left(118)
 pencolor('#130c0e')
 begin_fill()
 right_rotate(3, 5, 3.5)
 right_rotate(4, 32, 1.5)
 right_rotate(3, 12, 2.7)
 fillcolor('#130c0e')
 end_fill()
 set_start(78, -36, 1)
 left(110)
 pencolor('#130c0e')
 begin_fill()
 left_rotate(3, 5, 3.5)
 right(50)
 right_rotate(4, 20, 1)
 right_rotate(5, 10, 3)
 fillcolor('#130c0e')
 end_fill()
 set_start(94, -35, 1)
 left(125)
 pencolor('#130c0e')
 begin_fill()
 left_rotate(3, 5, 2)
 right(50)
 right_rotate(4, 25, 2)
 right_rotate(3, 10, 2.2)
 fillcolor('#130c0e')
 end_fill()
def draw_right_hand(): # 绘制虎右手
 fill_color_patch(-44.24, -37.54)
 set_start(-44.24, -37.54, 2.5)
 setheading(351.5)
 begin_fill()
 right(177)
 right_rotate(4, 3, 14)
 right(3)
 goto(-106, -22)
 set_start(-106, -22, 2.5)
 right(175)
 right_rotate(3, 5, 5.5)
 right_rotate(3, 22, 4)
 right(80)
 left_rotate(2, 25, 4)
 left_rotate(4, 35, 5.5)
 left_rotate(3, 30, 1.5)
 left_rotate(3, 20, 2)
 left_rotate(1, 10, 2.5)
 right(120)
 left_rotate(3, 20, 2.5)
 set_start(-143, -2, 2.5)
 left(120)
 left_rotate(4, 25, 3.5)
 left_rotate(1, 35, 3)
 left_rotate(2, 15, 3)
 left_rotate(5, 22, 3.5)
 left_rotate(2, 20, 2.5)
 set_start(-155, -7, 2.5)
 left(170)
 left_rotate(2, 35, 3.5)
 left_rotate(2, 12, 4.5)
 left_rotate(3, 28, 4)
 left_rotate(3, 10, 3)
 left_rotate(3, 28, 3.5)
 set_start(-158, -27, 2.5)
 right(130)
 left_rotate(3, 30, 2.5)
 left_rotate(4, 13, 4)
 left_rotate(4, 35, 2.5)
 set_start(-135, -25, 2.5)
 right(95)
 left_rotate(3, 12, 9)
 left_rotate(4, 12, 4)
 right_rotate(1, 90, 8)
 left(120)
 left_rotate(3, 12, 3)
 right(160)
 left_rotate(3, 10, 4)
 left(120)
 left_rotate(3, 12, 3.5)
 right(145)
 left_rotate(3, 10, 3.5)
 left(125)
 left_rotate(3, 10, 3.5)
 right_rotate(1, 135, 10)
 fillcolor('#fdb933')
 end_fill()
 fill_color_patch(-107, -23)
 begin_fill()
 set_start(-107, -23, 1)
 pencolor('#130c0e')
 right(90)
 right_rotate(3, 3, 3.5)
 left_rotate(5, 25, 1)
 left_rotate(3, 15, 3.2)
 fillcolor('#130c0e')
 end_fill()
 fill_color_patch(-122, -25)
 begin_fill()
 set_start(-122, -25, 1)
 pencolor('#130c0e')
 right(120)
 left_rotate(3, 5, 2)
 left_rotate(4, 30, 1.4)
 left_rotate(3, 15, 3)
 fillcolor('#130c0e')
 end_fill()
def draw_clothes(): # 绘制虎衣服
 set_start(0, -40, 2.5)
 right(90)
 begin_fill()
 left_rotate(3, 3, 14)
 goto(47.57, -36.43)
 setheading(94.25)
 left(171)
 left_rotate(3, 9, 9.5)
 left_rotate(1, 9, 3)
 left_rotate(2, 23, 2.5)
 right(150)
 left_rotate(3, 10, 5)
 right_rotate(3, 10, 10)
 right_rotate(1, 20, 4)
 right_rotate(2, 10, 4)
 right(90)
 left_rotate(5, 5, 10)
 fillcolor('#FF0000')
 end_fill()
 set_start(0, -40, 2.5)
 right(90)
 begin_fill()
 left_rotate(1, 3, 14)
 left_rotate(1, 3, 13)
 right(88)
 right_rotate(5, 5, 10)
 goto(21.85, -91.11)
 setheading(197.25)
 right_rotate(1, 20, 4)
 right_rotate(2, 10, 4)
 right(90)
 left_rotate(5, 5, 10)
 fillcolor('#228B22')
 end_fill()
 set_start(-44.24, -37.54, 2.5)
 setheading(351.5)
 begin_fill()
 right(177)
 right_rotate(2, 3, 14)
 right_rotate(1, 3, 7)
 left(65)
 left_rotate(4, 7, 10)
 left_rotate(3, 6, 10)
 left_rotate(1, 0, 2)
 left(128)
 right_rotate(6, 7, 6.1)
 right_rotate(2, 7, 6.1)
 left(125)
 right_rotate(5, 4, 11)
 fillcolor('#FF0000')
 end_fill()
 set_start(-44.24, -37.54, 2.5)
 setheading(351.5)
 begin_fill()
 right(177)
 right_rotate(1, 3, 14)
 right_rotate(1, 3, 8)
 left(92)
 left_rotate(4, 8, 7)
 right(10)
 right_rotate(4, 3, 6)
 goto(-59.29, -87.30)
 setheading(2.5)
 right_rotate(2, 7, 6.1)
 left(125)
 right_rotate(5, 4, 11)
 fillcolor('#228B22')
 end_fill()
def draw_tail(): # 绘制虎最下半部分
 set_start(53, -74, 2.4, c='#87481f')
 begin_fill()
 setheading(26)
 right_rotate(5, 16, 1.3)
 right_rotate(1, 8, 8)
 right_rotate(1, 8, 4)
 left(60)
 right_rotate(1, 3, 3)
 pencolor(COLOR)
 forward(5)
 right_rotate(4, 3, 8)
 left_rotate(3, 3, 7)
 left_rotate(2, 5, 3)
 left_rotate(5, 6, 6)
 left_rotate(3, 8, 7)
 left_rotate(5, 12, 6)
 left_rotate(5, 10, 6)
 left_rotate(5, 15, 2)
 left_rotate(2, 20, 2)
 left_rotate(3, 10, 3)
 right_rotate(2, 13, 5)
 right_rotate(2, 20, 6)
 right_rotate(2, 12, 6)
 right_rotate(5, 7.5, 5)
 right_rotate(6, 3, 4)
 left_rotate(4, 2, 8.5)
 fillcolor('#fdb933')
 end_fill()
 set_start(53, -74, 2.4, c='#87481f')
 begin_fill()
 setheading(26)
 right_rotate(5, 16, 1.3)
 right_rotate(1, 8, 8)
 right_rotate(1, 8, 3)
 left(60)
 right_rotate(1, 3, 2)
 pencolor('#130c0e')
 left_rotate(3, 25, 2)
 left_rotate(3, 5, 1.8)
 left_rotate(1, 78, 8.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(83, -81, 1, c='#130c0e')
 begin_fill()
 left(140)
 right_rotate(5, 8, 2)
 left_rotate(1, 105, 5)
 right_rotate(2, 3, 5.5)
 left(50)
 left_rotate(3, 15, 4.1)
 fillcolor('#130c0e')
 end_fill()
 set_start(109, -89, 1, c='#130c0e')
 begin_fill()
 left(150)
 right_rotate(3, 5, 2)
 right_rotate(4, 15, 2)
 left_rotate(1, 125, 6)
 left_rotate(2, 3, 7)
 left(85)
 left_rotate(3, 15, 6.05)
 left(68)
 right_rotate(3, 5, 5)
 fillcolor('#130c0e')
 end_fill()
 set_start(132, -88, 1, c='#130c0e')
 begin_fill()
 left(180)
 right_rotate(5, 10, 4.1)
 left_rotate(1, 100, 6)
 left_rotate(2, 5, 7)
 left(75)
 left_rotate(5, 10, 5)
 left(75)
 right_rotate(3, 8, 4.5)
 fillcolor('#130c0e')
 end_fill()
 set_start(150, -71, 1, c='#130c0e')
 begin_fill()
 right(140)
 right_rotate(5, 15, 5.8)
 left_rotate(1, 130, 6)
 left_rotate(2, 10, 5)
 left(30)
 left_rotate(5, 15, 5.6)
 left(81)
 right_rotate(3, 8, 3)
 fillcolor('#130c0e')
 end_fill()
 set_start(147, -51, 1, c='#130c0e')
 begin_fill()
 right(125)
 right_rotate(5, 10, 4)
 left(145)
 left_rotate(2, 10, 6.5)
 left_rotate(6, 14, 2)
 left_rotate(4, 22, 2)
 fillcolor('#130c0e')
 end_fill()
def draw_drum(): # 绘制虎身上的鼓
 set_start(-136, -12, 2, c='#87481f')
 begin_fill()
 right_rotate(1, 78, 17)
 right_rotate(5, 30, 1.2)
 right_rotate(1, 30, 17)
 fillcolor('#FF0000')
 end_fill()
 set_start(-140, -2, 2, c='#87481f')
 begin_fill()
 left_rotate(1, 108, 10)
 right_rotate(1, 90, 4)
 left_rotate(5, 16, 7)
 left_rotate(5, 19, 6.5)
 forward(4)
 left_rotate(5, 18, 7.5)
 left_rotate(5, 18, 6.1)
 left_rotate(1, 180, 3)
 left_rotate(1, 95, 10)
 fillcolor('#FF0000')
 end_fill()
 set_start(-156.34, 48.19, 1, c='#87481f')
 setheading(199)
 left(12)
 left_rotate(10, 14.5, 5.8)
 set_start(-140, 12, 1, c='#87481f')
 setheading(20)
 begin_fill()
 left_rotate(5, 14, 5.2)
 left_rotate(3, 15, 4.5)
 left_rotate(5, 18, 5)
 left_rotate(5, 16, 5.5)
 left_rotate(3, 18, 5)
 fillcolor('#fffffb')
 end_fill()
 set_start(-143, 14, 2.5, c='#FF0000')
 left_rotate(1, 117, 17)
 left_rotate(1, 90, 9)
 left(90)
 left_rotate(3, 5, 3.5)
 set_start(-146.8, 14, 2.5, c='#FF0000')
 left_rotate(1, 120, 14)
 set_start(-150, 34, 2.5, c='#FF0000')
 left_rotate(1, 120, 8.5)
 left(100)
 left_rotate(3, 17, 4)
 set_start(-140, 16, 2.5, c='#FF0000')
 left_rotate(1, 115, 14)
 right_rotate(1, 90, 13)
 right(90)
 right_rotate(4, 16, 4.5)
 set_start(-136, 18, 2.4, c='#FF0000')
 left_rotate(1, 112, 12)
 set_start(-142, 24, 2.5, c='#FF0000')
 left_rotate(1, 35, 10)
 set_start(-145, 32, 2.5, c='#FF0000')
 left_rotate(1, 115, 6)
 right_rotate(1, 85, 10)
 right(40)
 right_rotate(3, 18, 2)
 right_rotate(1, 95, 10)
 set_start(-149, 44, 2.5, c='#FF0000')
 left(60)
 right_rotate(3, 22, 3)
 set_start(-166, 20, 2.4)
 right(100)
 right_rotate(4, 32, 3)
 right_rotate(2, 12, 3.5)
 left_rotate(2, 10, 4)
 left_rotate(4, 25, 2.5)
 set_start(-196, 35, 2.4)
 draw_circle(3.5, COLOR, '#FF0000')
 set_start(-127, 38, 2.4)
 left(60)
 right_rotate(4, 32, 3)
 right_rotate(2, 12, 3.5)
 left_rotate(6, 28, 2)
 left_rotate(3, 15, 2)
 set_start(-115, 33, 2.4)
 draw_circle(3.5, COLOR, '#FF0000')
def add_text(): # 添加文字
 set_start(-200, -30, 2, c='red')
 write("虎", font=("微软雅黑", 16, "bold"))
 set_start(-195, -70, 2, c='red')
 write("虎", font=("微软雅黑", 16, "bold"))
 set_start(-190, -110, 2, c='red')
 write("生", font=("微软雅黑", 16, "bold"))
 set_start(-185, -150, 2, c='red')
 write("威", font=("微软雅黑", 16, "bold"))
if __name__ == '__main__':
 title('小老虎')
 setup(420, 400, 150, 150)
 screensize(400, 380, '#FFE4E1')
 time.sleep(3)
 draw_head()
 draw_face()
 draw_eye()
 draw_nose()
 draw_mouth()
 draw_ear()
 draw_cap()
 draw_brow()
 draw_shadow()
 draw_body()
 draw_moustache()
 draw_left_hand()
 draw_right_hand()
 draw_clothes()
 draw_tail()
 draw_drum()
 set_start(1000, 1000, 2.5)
 add_text()
 done()

4 感谢

结语】以上是 Python标准库 turtle 模块的使用及作品介绍,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,欢迎关注点赞,给予我记录更多文章的动力!!

作者:ITB业生原文地址:https://blog.csdn.net/qq_19394437/article/details/142423091

%s 个评论

要回复文章请先登录注册