一、绘图命令
操纵海龟绘图有很多命令,可以划分为三种:画笔运动命令、画笔控制命令、全局控制命令
画笔运动命令
命令 |
说明 |
turtle.forward(distance) |
向当前画笔方向移动distance像素长度 |
turtle.backward(distance) |
向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) |
顺时针移动degree° |
turtle.left(degree) |
逆时针移动degree° |
turtle.pendown() |
移动时绘制图形,缺少参数时也为绘制 |
turtle.goto(x,y) |
将画笔移动到坐标为(x,y)的位置 |
turtle.penuo() |
提起画笔,不绘制图形,用于另起一个地方绘制 |
turtle.circle() |
画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
setx() |
将当前x轴移动到指定位置 |
sety() |
将当前y轴移动到指定位置 |
setheading(angle) |
设置当前朝向为angle的角度 |
home() |
设置当前画笔位置为原点,朝向向东 ° |
画笔控制命令
命令 |
说明 |
turtle.fillcolor(colorstring) |
绘制图形填充颜色 |
turtle.color(color1, color2) |
同时设置 pencolor = color1,fillcolor = color2 |
turtle.filling() |
返回当前是否在填充状态 |
turtle.begin_fill() |
准备开始填充图形 |
turtle.end_fill() |
填充完成 |
turtle.hideturtle() |
隐藏画笔的turtle形状 |
turtle.showturtle() |
显示画笔的turtle形状 |
全局控制命令
命令 |
说明 |
turtle.clear() |
清空turtle窗口,但是turtle的位置和状态不会发生变化 |
turtle.reset() |
清空窗口,重置turtle状态为起始状态 |
turtle.undo() |
撤销上一个turtle动作 |
turtle.isvisible() |
返回当前turtle是否可见 |
stamp() |
复制当前图形 |
turtle.write(s[,font = ("font_name",font_size,"font_type")]) |
写文本,s为文本内容,font是字体参数,分别是字体名称,字体大小和类型,font和font的参数都是可选选项 |
案例
案例一
# 导入 turtle 模块
import turtle as t
t.goto(100,100)
t.goto(100,-100)
t.goto(-100,-100)
t.goto(-100,100)
t.goto(0,0)
t.done()
案例二
# 用for循环初步实现画笔自动绘图
import turtle as t
for i in range(20):
# 画笔向前移动
t.forward(100 + 10 * i)
# 顺时针旋转120°
t.right(120)
t.done()
案例三
# 用for循环初步实现画笔自动绘图并显示其印记
import turtle as t
for i in range(20):
# 画笔向前移动
t.forward(100 + 10 * i)
#t.shape("turtle") # 海龟
#t.shape("circle") # 圆
t.shape("square") # 正方形
# 打印turtle印记
t.stamp()
# 顺时针旋转60°
t.right(60)
t.done()
案例四
# 绘制金光闪闪的太阳
import turtle as t
# 为小数时表示占据电脑屏幕的比例
t.setup(width = 0.6, height = 0.6)
# t.pencolor("red")
t.color("red", "yellow")
t.begin_fill()
# 控制绘图时间
t.speed(20)
while True:
t.forward(200)
t.left(170)
# print(t.pos())
if abs(t.pos()) < 1:
break
t.end_fill()
t.write("一颗金光闪闪的太阳", align = "right", font = ("Arial", 20, "normal"))
t.done()
案例五
# 粉色的爱心
import turtle as t
t.setup(800,800)
t.speed(8)
# 设置画笔大小
t.pensize(10)
t.hideturtle()
t.pencolor("pink")
t.left(45)
t.forward(80)
t.circle(35,210)
t.right(150)
t.circle(35,210)
t.forward(80)
t.done()