Turtle模块 - 详细说明

Turtle是Python的一个标准库,提供了一个简单的绘图环境,非常适合初学者学习编程概念。它基于LOGO语言,通过控制一个"海龟"在屏幕上移动来绘制图形。

Turtle模块概览

Python中的Turtle模块具有以下特点:

  • 直观易懂:通过简单的指令控制海龟移动和绘图
  • 教育性强:非常适合教授编程基础和几何概念
  • 功能丰富:支持颜色、填充、形状等多种绘图功能
  • 跨平台:在Windows、Mac和Linux系统上均可运行

基础设置和初始化

在使用Turtle模块前,需要先导入模块并创建画布和海龟对象:

# 导入turtle模块
import turtle

# 创建画布和海龟对象
screen = turtle.Screen()
t = turtle.Turtle()

# 设置画布属性
screen.setup(800, 600) # 设置画布大小
screen.title("我的第一个Turtle程序") # 设置窗口标题
screen.bgcolor("white") # 设置背景颜色

# 设置海龟属性
t.shape("turtle") # 设置海龟形状
t.color("blue") # 设置海龟颜色
t.speed(5) # 设置移动速度(1-10)

# 关闭画布(放在程序最后)
# screen.exitonclick() # 点击关闭窗口

海龟移动控制

控制海龟在画布上移动的基本方法:

方法 描述 示例
forward(distance) 向前移动指定距离 t.forward(100)
backward(distance) 向后移动指定距离 t.backward(100)
right(angle) 向右转动指定角度 t.right(90)
left(angle) 向左转动指定角度 t.left(90)
goto(x, y) 移动到指定坐标 t.goto(50, 50)
setx(x) 设置x坐标 t.setx(100)
sety(y) 设置y坐标 t.sety(100)
home() 返回原点(0,0) t.home()
# 移动控制示例 - 绘制一个正方形
import turtle

t = turtle.Turtle()
t.speed(3)

# 绘制正方形
for i in range(4):
    t.forward(100)
    t.right(90)

# 移动到新位置绘制三角形
t.penup()
t.goto(150, 0)
t.pendown()

# 绘制三角形
for i in range(3):
    t.forward(100)
    t.left(120)

turtle.done()

画笔控制

控制画笔的属性和状态:

方法 描述 示例
penup() 抬起画笔,移动时不绘制 t.penup()
pendown() 放下画笔,移动时绘制 t.pendown()
pensize(width) 设置画笔宽度 t.pensize(5)
color(color) 设置画笔颜色 t.color("red")
begin_fill() 开始填充 t.begin_fill()
end_fill() 结束填充 t.end_fill()
fillcolor(color) 设置填充颜色 t.fillcolor("yellow")
clear() 清除画布 t.clear()
reset() 重置海龟状态和画布 t.reset()
# 画笔控制示例 - 绘制彩色填充图形
import turtle

t = turtle.Turtle()
t.speed(3)

# 设置画笔属性
t.pensize(3)

# 绘制红色填充正方形
t.color("black", "red") # 边框黑色,填充红色
t.begin_fill()
for i in range(4):
    t.forward(100)
    t.right(90)
t.end_fill()

# 移动到新位置
t.penup()
t.goto(150, 0)
t.pendown()

# 绘制蓝色填充圆形
t.color("black", "blue")
t.begin_fill()
t.circle(50)
t.end_fill()

turtle.done()

形状和颜色控制

Turtle支持多种形状和颜色设置:

方法 描述 示例
shape(shape) 设置海龟形状 t.shape("turtle")
shapesize(w, h) 设置形状大小 t.shapesize(2, 3)
color(pencolor, fillcolor) 设置画笔和填充颜色 t.color("red", "yellow")
pencolor(color) 设置画笔颜色 t.pencolor("blue")
fillcolor(color) 设置填充颜色 t.fillcolor("green")
# 形状和颜色示例
import turtle

t = turtle.Turtle()
t.speed(3)

# 可用的形状: "arrow", "turtle", "circle", "square", "triangle", "classic"
shapes = ["arrow", "turtle", "circle", "square", "triangle"]
colors = ["red", "blue", "green", "purple", "orange"]

for i in range(len(shapes)):
    t.shape(shapes[i])
    t.color(colors[i])
    t.forward(50)
    t.stamp() # 在当前位置留下印记
    t.forward(50)

turtle.done()

高级功能和事件处理

Turtle还支持一些高级功能和事件处理:

功能 描述 示例
onkey(fun, key) 按键事件处理 screen.onkey(move, "Up")
onclick(fun) 点击事件处理 t.onclick(change_color)
circle(radius) 绘制圆形 t.circle(50)
dot(size, color) 绘制圆点 t.dot(20, "red")
stamp() 在当前位置留下印记 t.stamp()
write(text) 在画布上写文字 t.write("Hello")
# 事件处理示例 - 键盘控制海龟移动
import turtle

# 创建屏幕和海龟
screen = turtle.Screen()
t = turtle.Turtle()
t.speed(5)

# 定义移动函数
def move_forward():
    t.forward(30)

def move_backward():
    t.backward(30)

def turn_left():
    t.left(30)

def turn_right():
    t.right(30)

def clear_screen():
    t.clear()
    t.penup()
    t.home()
    t.pendown()

# 绑定按键事件
screen.onkey(move_forward, "Up")
screen.onkey(move_backward, "Down")
screen.onkey(turn_left, "Left")
screen.onkey(turn_right, "Right")
screen.onkey(clear_screen, "c")

# 监听按键
screen.listen()

# 点击关闭窗口
screen.exitonclick()

综合示例

下面是一个绘制彩色螺旋线的综合示例:

# 绘制彩色螺旋线
import turtle

t = turtle.Turtle()
t.speed(0) # 最快速度
screen = turtle.Screen()
screen.bgcolor("black") # 设置黑色背景

# 定义颜色列表
colors = ["red", "purple", "blue", "green", "yellow", "orange"]

# 绘制彩色螺旋线
for x in range(360):
    t.pencolor(colors[x % len(colors)])
    t.width(x / 100 + 1)
    t.forward(x)
    t.left(59)

t.hideturtle() # 隐藏海龟
turtle.done()
示例说明:

这个程序会创建一个黑色背景的画布,并绘制一个彩色螺旋线。随着螺旋线的延伸,线条的颜色会循环变化,线条宽度也会逐渐增加,形成一个漂亮的视觉效果。

注意: 在某些Python环境中(如在线编辑器或某些IDE),Turtle图形窗口可能无法正常显示或需要特殊设置。建议在本地Python环境中运行Turtle程序。
提示: 使用t.speed(0)可以设置最快的绘图速度,这在绘制复杂图形时特别有用。另外,使用t.hideturtle()可以在绘制完成后隐藏海龟图标,使图形更清晰。
← 返回知识点列表