Python Turtle库绘图指南
Python 的 turtle 库是一个非常适合初学者的绘图工具,通过简单的指令可以控制“海龟”在屏幕上移动并绘制图形。以下是详细的 Turtle 库使用指南,包含基础操作、常用函数和代码示例。
1. 安装与导入
turtle 是 Python 的标准库,无需额外安装。直接导入即可:
python
import turtle
2. 基础概念
- 画布(Canvas):绘图区域,可通过 turtle.setup(width, height) 设置大小。
- 画笔(Turtle):初始位置在画布中心 (0,0),默认朝右(东方向)。
- 坐标系:中心为 (0,0),向右为 X 轴正方向,向上为 Y 轴正方向。
3. 常用函数速查
画笔控制
函数 | 说明 |
turtle.forward(distance) 或 turtle.fd(d) | 向前移动 d 像素 |
turtle.backward(distance) 或 turtle.bk(d) | 向后移动 d 像素 |
turtle.right(angle) 或 turtle.rt(a) | 向右转 angle 度 |
turtle.left(angle) 或 turtle.lt(a) | 向左转 angle 度 |
turtle.goto(x, y) | 移动到坐标 (x, y) |
turtle.home() | 返回初始位置 (0,0),朝东 |
画笔属性
函数 | 说明 |
turtle.penup() 或 turtle.pu() | 抬起画笔(移动不画线) |
turtle.pendown() 或 turtle.pd() | 落下画笔(恢复画线) |
turtle.pensize(width) | 设置画笔粗细 |
turtle.pencolor(color) | 设置画笔颜色(如 "red", "#FF0000") |
turtle.speed(speed) | 设置速度(0-10,0 最快) |
turtle.fillcolor(color) | 设置填充颜色 |
填充与图形
函数 | 说明 |
turtle.begin_fill() | 开始填充图形 |
turtle.end_fill() | 结束填充图形 |
turtle.circle(radius) | 画半径为 radius 的圆 |
窗口控制
函数 | 说明 |
turtle.done() | 保持窗口不关闭 |
turtle.bye() | 关闭绘图窗口 |
turtle.reset() | 清空画布并重置海龟 |
4. 实例演示
示例 1:绘制正方形
python
import turtle
t = turtle.Turtle()
t.speed(1) # 设置速度为最慢
for _ in range(4):
t.forward(100)
t.right(90)
turtle.done() # 保持窗口
示例 2:绘制彩色五角星
python
import turtle
t = turtle.Turtle()
t.speed(2)
t.color("red", "yellow") # 画笔红色,填充黄色
t.begin_fill()
for _ in range(5):
t.forward(100)
t.right(144) # 五角星角度为 144°
t.end_fill()
turtle.done()
示例 3:绘制螺旋图案
python
import turtle
t = turtle.Turtle()
t.speed(0) # 最快速度
for i in range(100):
t.forward(i * 2)
t.right(91)
turtle.done()
示例 4:递归树(分形图形)
python
import turtle
def draw_tree(branch_length):
if branch_length < 5:
return
turtle.forward(branch_length)
turtle.right(20)
draw_tree(branch_length - 15)
turtle.left(40)
draw_tree(branch_length - 15)
turtle.right(20)
turtle.backward(branch_length)
turtle.speed(0)
turtle.left(90) # 初始朝上
turtle.penup()
turtle.goto(0, -100)
turtle.pendown()
draw_tree(100)
turtle.done()
5. 高级技巧
- 隐藏海龟:turtle.hideturtle() 或 t.ht()。
- 自定义形状:使用 turtle.register_shape("name", coordinates) 定义形状。
- 事件监听:通过 turtle.onkey(func, "key") 和 turtle.listen() 实现交互。
- 批量绘图优化:关闭动画加速绘制:
python
turtle.tracer(0) # 关闭动画
# 绘图代码...
turtle.update() # 手动更新画面
6. 常见问题
- 窗口闪退:确保代码最后有 turtle.done() 或 turtle.exitonclick()。
- 颜色模式:使用 RGB 时需先设置 turtle.colormode(255)。
- 坐标系调整:通过 turtle.setworldcoordinates(x1, y1, x2, y2) 自定义坐标系。
通过 turtle 库,你可以轻松实现从简单几何图形到复杂分形的创作。结合循环、递归和事件监听,还能开发交互式绘图程序!