Turble海龟画图介绍
这一生无需比较,一笔写不出两个我,我就是我,半身风雨半寒凉,半梦半醒半人间。风往北吹人往南走,爱与不爱都要落落大方,顺其自然,心安即是家,心若向阳,何惧忧伤。
Turtle
海龟画图是一个有趣的编程工具,它让你可以通过编写简单的代码来控制一只"海龟"在屏幕上画出各种图案和形状。这个工具非常适合小朋友和初学者学习编程,因为它非常直观,并且能够立刻看到自己写的代码产生的效果。
主要功能
- 画图 :
Turtle
让你可以画线、画圆、画多边形,甚至可以用不同的颜色来画画。 - 控制海龟:你可以让"海龟"向前走、向后退、转弯,还可以调整它的速度。
- 创作图案:通过组合不同的指令,你可以创作出非常漂亮的图案和图片。
使用示例
假设你想让海龟在屏幕上画一个正方形,你只需要给它下几个简单的指令:
ini
import turtle
# 创建一个海龟对象
my_turtle = turtle.Turtle()
# 让海龟画一个正方形
for _ in range(4):
my_turtle.forward(100) # 向前走100步
my_turtle.right(90) # 向右转90度
# 结束画图
turtle.done()
程来画画的魔法工具。你只需要告诉它怎么走、怎么转,它就会帮你在屏幕上画出你想要的图案。这是学习编程的一个有趣方式,同时还能创造出美丽的艺术作品!
核心方法
Turtle
海龟画图的核心方法非常简单易用,以下是一些最常用的核心方法:
1. forward(distance)
让海龟向前移动指定的距离。
示例:
bash
turtle.forward(100) # 海龟向前走 100 步
2. backward(distance)
让海龟向后移动指定的距离。
示例:
bash
turtle.backward(50) # 海龟向后走 50 步
3. right(angle)
让海龟向右转指定的角度。
示例:
bash
turtle.right(90) # 海龟向右转 90 度
4. left(angle)
让海龟向左转指定的角度。
示例:
bash
turtle.left(45) # 海龟向左转 45 度
5. penup()
抬起海龟的画笔,这样移动时不会留下痕迹。
示例:
bash
turtle.penup() # 抬起画笔,停止画线
6. pendown()
放下海龟的画笔,这样移动时会留下线条。
示例:
bash
turtle.pendown() # 放下画笔,开始画线
7. goto(x, y)
让海龟移动到指定的坐标位置。
示例:
csharp
turtle.goto(100, 200) # 移动到 (100, 200) 位置
8. circle(radius)
让海龟画一个指定半径的圆。
示例:
bash
turtle.circle(50) # 画一个半径为 50 的圆
9. color(color_name)
设置海龟画线的颜色。
示例:
bash
turtle.color("blue") # 将线条颜色设置为蓝色
10. begin_fill()
开始填充图形。
示例:
bash
turtle.begin_fill() # 准备开始填充颜色
11. end_fill()
结束填充图形。
示例:
bash
turtle.end_fill() # 结束填充颜色
12. speed(speed_value)
设置海龟的移动速度。值从 1(最慢)到 10(最快),或者 "fastest"
,"fast"
, "normal"
, "slow"
, "slowest"
。
示例:
bash
turtle.speed(5) # 设置海龟的速度为 5
13. setheading(angle)
设置海龟的方向,0 度朝向右方,90 度朝向上方。
示例:
bash
turtle.setheading(90) # 将海龟的方向设置为向上
14. hideturtle()
隐藏海龟,使其不可见,但仍然可以画图。
示例:
bash
turtle.hideturtle() # 隐藏海龟
15. showturtle()
显示海龟,使其再次可见。
示例:
bash
turtle.showturtle() # 显示海龟
这里有更多 Turtle
的核心方法示例,展示如何使用这些方法创建不同的图形和效果。
16. circle(radius, extent=None, steps=None)
除了基本的画圆外,circle
方法还可以画弧线或者多边形。
- 画半圆:
ini
import turtle
t = turtle.Turtle()
t.circle(50, 180) # 画一个半径为50的半圆
turtle.done()
- 画多边形:
ini
import turtle
t = turtle.Turtle()
t.circle(50, steps=6) # 画一个六边形
turtle.done()
17. setposition(x, y)
和 setx(x)
,sety(y)
这些方法让你能够精确地控制海龟的坐标位置。
- 直接移动到指定位置:
scss
import turtle
t = turtle.Turtle()
t.setposition(100, 100) # 移动到 (100, 100) 位置
t.setposition(-100, 100) # 移动到 (-100, 100) 位置
turtle.done()
- 分别设置 x 和 y 坐标:
ini
import turtle
t = turtle.Turtle()
t.setx(150) # 只改变 x 坐标
t.sety(-150) # 只改变 y 坐标
turtle.done()
18. dot(size, color)
dot
方法可以画一个指定大小和颜色的圆点。
- 画一个红色的圆点:
ini
import turtle
t = turtle.Turtle()
t.dot(20, "red") # 画一个半径为20的红色圆点
turtle.done()
19. stamp()
stamp
方法可以在当前海龟的位置留下一个"印记",这个印记是海龟当前形状的副本。
- 留下海龟的印记:
scss
import turtle
t = turtle.Turtle()
t.shape("turtle") # 设置海龟形状
t.stamp() # 留下一个海龟形状的印记
t.forward(100)
t.stamp() # 再留下一个印记
turtle.done()
20. begin_fill()
和 end_fill()
使用这两个方法可以填充封闭图形的颜色。
- 画一个填充的三角形:
scss
import turtle
t = turtle.Turtle()
t.color("blue") # 设置画笔颜色为蓝色
t.begin_fill() # 开始填充
for _ in range(3):
t.forward(100)
t.left(120)
t.end_fill() # 结束填充
turtle.done()
21. write(text, move=False, align="left", font=("Arial", 8, "normal"))
write
方法可以在海龟当前的位置写文字。
- 在屏幕上写字:
ini
import turtle
t = turtle.Turtle()
t.write("Hello, Turtle!", move=True, align="center", font=("Arial", 16, "bold"))
turtle.done()
22. home()
home
方法让海龟回到屏幕的中心点,并朝向默认方向(右方)。
- 回到起点:
scss
import turtle
t = turtle.Turtle()
t.forward(150)
t.left(120)
t.home() # 海龟回到屏幕中央
turtle.done()
23. reset()
和 clear()
reset
会清除所有的画图并重置海龟,而 clear
只会清除画图,不改变海龟的位置和状态。
- 重置画布:
scss
import turtle
t = turtle.Turtle()
t.forward(100)
t.reset() # 清除画图并重置海龟
turtle.done()
- 清除画图:
scss
import turtle
t = turtle.Turtle()
t.forward(100)
t.clear() # 只清除画图,但海龟位置不变
turtle.done()
以下是一些使用 Turtle
来绘制不同图形和图案的示例,这些例子展示了如何组合核心方法来创建有趣的绘画效果。
画图示例
1. 画一个同心圆
使用 Turtle
绘制多个同心圆,展示如何利用 circle
方法。
scss
import turtle
t = turtle.Turtle()
t.speed(5) # 设置海龟速度
# 画多个同心圆
for radius in range(20, 120, 20):
t.circle(radius)
t.penup() # 抬起画笔,防止在移动中画线
t.goto(0, -radius) # 移动到下一个圆的起点
t.pendown() # 放下画笔,准备画下一个圆
turtle.done()
2. 画一个彩虹色的螺旋
通过调整颜色和角度来绘制一个渐变色的螺旋图案。
ini
import turtle
t = turtle.Turtle()
t.speed(10) # 设置速度为最快
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# 画彩虹螺旋
for x in range(360):
t.color(colors[x % 6]) # 循环使用颜色
t.forward(x * 0.5) # 随着 x 的增大,前进的距离也增大
t.right(45) # 每次右转 45 度
turtle.done()
3. 画一个简单的房子
结合 Turtle
方法绘制一个简单的房子形状,包括房顶和墙壁。
scss
import turtle
t = turtle.Turtle()
# 画房子的墙壁
t.penup()
t.goto(-100, -100) # 移动到起点
t.pendown()
t.color("black", "yellow") # 设置画笔颜色和填充颜色
t.begin_fill()
for _ in range(4):
t.forward(200) # 每边长 200
t.left(90)
t.end_fill()
# 画房顶
t.color("black", "red")
t.begin_fill()
t.goto(-100, 100)
t.goto(0, 200)
t.goto(100, 100)
t.goto(-100, 100)
t.end_fill()
turtle.done()
4. 画一个六边形花朵
通过重复绘制六边形来形成一个花朵图案。
scss
import turtle
t = turtle.Turtle()
t.speed(5)
# 画花朵
for _ in range(6):
for _ in range(6):
t.forward(100)
t.right(60) # 每个角度是 60 度
t.right(60)
turtle.done()
5. 画一个星空背景
使用 Turtle
绘制随机散布的小星星,模拟星空的效果。
scss
import turtle
import random
t = turtle.Turtle()
t.speed(0)
t.hideturtle() # 隐藏海龟
screen = turtle.Screen()
screen.bgcolor("black") # 设置背景颜色为黑色
# 画星星的函数
def draw_star(x, y):
t.penup()
t.goto(x, y)
t.pendown()
t.color("white")
t.begin_fill()
for _ in range(5):
t.forward(10)
t.right(144)
t.end_fill()
# 随机画多颗星星
for _ in range(50):
x = random.randint(-300, 300)
y = random.randint(-300, 300)
draw_star(x, y)
turtle.done()
6. 画一个花朵形状
通过组合多个圆形来创建一个简单的花朵图案。
scss
import turtle
t = turtle.Turtle()
t.speed(5)
# 画花朵的花瓣
for _ in range(6):
t.circle(50) # 画圆形花瓣
t.left(60)
# 画花朵的中心
t.penup()
t.goto(0, -50)
t.pendown()
t.color("yellow")
t.begin_fill()
t.circle(50)
t.end_fill()
turtle.done()