页面加载中...
Turtle 是 Python 内置的一个简单绘图模块,它模拟了一个小海龟在画布上移动并留下轨迹的过程。
根据 Python 官方文档(https://docs.python.org/3/library/turtle.html):
"Turtle 模块提供了一个绘图板和一个小海龟,你可以通过命令控制海龟的移动来绘制图形。"
下面是一个简单的 Turtle 程序:
import turtle
# 创建画布和海龟对象
screen = turtle.Screen()
t = turtle.Turtle()
# 移动海龟绘制图形
t.forward(100) # 向前移动100像素
t.right(90) # 右转90度
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
# 完成后关闭窗口
screen.exitonclick() # 点击窗口关闭import turtle
# 创建画布和海龟
screen = turtle.Screen()
t = turtle.Turtle()
# 设置画布属性
screen.title("我的海龟绘图")
screen.bgcolor("lightblue") # 设置背景颜色
# 设置海龟属性
t.shape("turtle") # 设置海龟形状:turtle, arrow, circle, square, triangle等
t.color("green") # 设置海龟颜色
t.pensize(3) # 设置画笔粗细
# 移动海龟
t.forward(100) # 向前移动
t.backward(50) # 向后移动
t.left(45) # 左转45度
t.right(90) # 右转90度
# 控制画笔
t.penup() # 提起画笔,移动时不绘制
t.goto(0, 0) # 移动到指定坐标
t.pendown() # 放下画笔,继续绘制
# 完成后关闭窗口
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制正方形
for _ in range(4):
t.forward(100)
t.right(90)
# 绘制三角形
t.penup()
t.goto(-150, 0)
t.pendown()
for _ in range(3):
t.forward(100)
t.left(120)
# 绘制五角星
t.penup()
t.goto(150, 0)
t.pendown()
for _ in range(5):
t.forward(100)
t.right(144)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制圆形
t.penup()
t.goto(-100, 0)
t.pendown()
t.circle(50) # 半径为50的圆
# 绘制半圆
t.penup()
t.goto(100, 0)
t.pendown()
t.circle(50, 180) # 半径为50,角度为180度的圆弧
# 绘制螺旋线
t.penup()
t.goto(0, -100)
t.pendown()
for i in range(100):
t.circle(i * 0.5)
t.left(10)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 设置画笔颜色
t.color("red")
t.forward(100)
# 设置填充颜色
t.penup()
t.goto(-100, 0)
t.pendown()
t.fillcolor("blue")
t.begin_fill()
for _ in range(4):
t.forward(50)
t.right(90)
t.end_fill()
# 使用RGB颜色
screen.colormode(255) # 设置RGB模式 (0-255)
t.penup()
t.goto(0, -100)
t.pendown()
t.color(255, 165, 0) # 橙色
t.circle(40)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制填充的五角星
t.fillcolor("yellow")
t.begin_fill()
for _ in range(5):
t.forward(100)
t.right(144)
t.end_fill()
# 绘制填充的花朵
t.penup()
t.goto(150, 0)
t.pendown()
t.fillcolor("pink")
t.begin_fill()
for _ in range(10):
t.circle(30, 180)
t.left(180)
t.end_fill()
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 设置不同的速度
t.speed(1) # 最慢
t.forward(50)
t.speed(3) # 慢速
t.forward(50)
t.speed(5) # 正常速度 (默认)
t.forward(50)
t.speed(7) # 快速
t.forward(50)
t.speed(10) # 最快
t.forward(50)
t.speed(0) # 无动画,最快
t.forward(50)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 创建一个简单的动画
for i in range(100):
t.forward(i)
t.right(91)
# 清除屏幕并重置海龟
t.clear()
t.penup()
t.home() # 回到原点
t.pendown()
# 更复杂的动画:绘制彩色螺旋
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
for i in range(360):
t.pencolor(colors[i % 6])
t.forward(i)
t.left(59)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制分形树
def draw_tree(branch_length, t):
if branch_length > 5:
# 绘制主干
t.forward(branch_length)
# 右转并绘制右分支
t.right(20)
draw_tree(branch_length - 15, t)
# 左转并绘制左分支
t.left(40)
draw_tree(branch_length - 15, t)
# 回到原来的方向
t.right(20)
t.backward(branch_length)
# 设置初始状态
t.left(90)
t.penup()
t.backward(200)
t.pendown()
t.pensize(2)
t.speed(0) # 最快速度
# 绘制树
draw_tree(100, t)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制多边形函数
def draw_polygon(t, sides, size):
angle = 360 / sides
for _ in range(sides):
t.forward(size)
t.left(angle)
# 绘制不同边数的多边形
t.penup()
t.goto(-200, 0)
t.pendown()
draw_polygon(t, 3, 50) # 三角形
t.penup()
t.goto(-100, 0)
t.pendown()
draw_polygon(t, 4, 50) # 正方形
t.penup()
t.goto(0, 0)
t.pendown()
draw_polygon(t, 5, 50) # 五边形
t.penup()
t.goto(100, 0)
t.pendown()
draw_polygon(t, 6, 50) # 六边形
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 定义点击处理函数
def draw_circle(x, y):
t.penup()
t.goto(x, y)
t.pendown()
t.circle(30)
# 绑定点击事件
screen.onclick(draw_circle)
# 显示提示
t.penup()
t.goto(0, 200)
t.pendown()
t.write("点击屏幕绘制圆形", align="center", font=("Arial", 16, "normal"))
# 开始事件循环
screen.mainloop() # 保持窗口打开并响应事件import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 定义移动函数
def move_forward():
t.forward(10)
def move_backward():
t.backward(10)
def turn_left():
t.left(10)
def turn_right():
t.right(10)
def clear_screen():
t.clear()
t.penup()
t.home()
t.pendown()
# 绑定键盘事件
screen.listen()
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")
# 显示提示
t.penup()
t.goto(0, 200)
t.pendown()
t.write("使用方向键控制海龟移动,按 'c' 清除屏幕", align="center", font=("Arial", 12, "normal"))
# 开始事件循环
screen.mainloop() # 保持窗口打开并响应事件import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 设置速度和颜色
t.speed(0) # 最快速度
colors = ["red", "purple", "blue", "green", "orange", "yellow"]
# 绘制螺旋图案
for i in range(360):
t.pencolor(colors[i % 6])
t.width(i / 100 + 1)
t.forward(i)
t.left(59)
screen.exitonclick() # 点击窗口关闭import turtle
screen = turtle.Screen()
t = turtle.Turtle()
# 绘制雪花分支
def draw_snowflake_branch(t, size):
if size < 10:
t.forward(size)
t.backward(size)
return
draw_snowflake_branch(t, size / 3)
t.left(60)
draw_snowflake_branch(t, size / 3)
t.right(120)
draw_snowflake_branch(t, size / 3)
t.left(60)
draw_snowflake_branch(t, size / 3)
# 绘制完整雪花
def draw_snowflake(t, size):
for _ in range(6):
draw_snowflake_branch(t, size)
t.right(60)
# 设置属性
t.speed(0) # 最快速度
t.penup()
t.goto(0, 0)
t.pendown()
# 绘制多个雪花
for _ in range(10):
size = random.randint(30, 100)
x = random.randint(-200, 200)
y = random.randint(-200, 200)
t.penup()
t.goto(x, y)
t.pendown()
draw_snowflake(t, size)
screen.exitonclick() # 点击窗口关闭Python Turtle 模块提供了一个简单而有趣的方式来学习编程和计算机图形学:
Turtle 是学习编程的理想工具,特别是对初学者来说。通过 Turtle,你可以直观地看到代码的执行结果,从而更好地理解编程概念。
在使用 Turtle 时,建议:
通过 Turtle,你可以创建从简单几何图形到复杂分形艺术的各种作品,享受编程和图形设计的乐趣!