海龟绘图很适合用来引导孩子学习编程,通过编写简短的、简单的程序来创建漂亮的、复杂的视觉效果。而且还可以通过跟随海龟观察到每行代码是如何影响到它的移动,可以很好的帮助我们理解代码的逻辑,也是非常适合孩子学习的。
在绘图区有一只海龟,起始位置原点(0,0),先执行import turtle,在执行turtle.forward(15)可以控制海龟朝向x轴正方向前进15像素,即画出一条线段。
通过组合使用一些指令程序,可以绘制出精美的形状和图案。一、画布
画布就是海龟的绘图区域范围,可以通过指令修改画布的大小和初始位置
1、turtle.screensize(canvwidth=None,canvheight=None,bg=None)参数:canvwidth:画布的宽度,canvheight:画布的高度,bg:画布的背景
2、turtle.setup(width=0.5,height=0.75,startx=None,starty=None)width和height:宽和高,整数表示像素,小数表示占据屏幕的比例;startx和starty:表示矩形窗口左上角顶点的位置,为空,则位于屏幕中心。二、画笔
画笔默认位于画布中心原点x-y(0,0)位置。
1、import turtle as t
2、t.forward(150)
默认形状是一个黑色箭头改变海龟外观:
turtle.shape(name=None)name:一个有效名字的字符串
1、import turtle as t
2、t.shape("turtle")海龟是否可见:
1、turtle.hideturtle(),turtle.ht()使海龟不可见。当你绘制复杂图形时这是个好主意,因为隐藏海龟可显著加快绘制速度。
2、turtle.showturtle(),turtle.st(),使海龟可见。
3、turtle.isvisible(),如果海龟显示返回 True,如果海龟隐藏返回 False。
代码:
import turtle as t
t.shape("turtle")
t.circle(100)
t.ht()海龟移动指令
1、turtle.forward(distance),turtle.fd(distance)海龟前进 distance 指定的距离,方向为海龟的朝向。
2、turtle.bk(distance),turtle.backward(distance)海龟后退 distance 指定的距离,方向与海龟的朝向相反。不改变海龟的朝向。
3、turtle.right(angle),turtle.rt(angle)海龟右转 angle 个单位。
4、turtle.left(angle),turtle.lt(angle)海龟左转 angle 个单位。
5、turtle.goto(x, y=None),turtle.setpos(x, y=None),turtle.setposition(x, y=None)海龟移动到一个绝对坐标。如果画笔已落下将会画线。不改变海龟的朝向。
6、turtle.speed(speed=None)"fastest": 0 最快,"fast": 10 快,"normal": 6 正常,"slow": 3 慢,"slowest": 1 最慢画笔控制——绘图状态
1、turtle.pendown()、turtle.pd()、turtle.down()画笔落下 -- 移动时将画线
2、turtle.penup()、turtle.pu()、turtle.up()画笔抬起 -- 移动时不画线
3、turtle.pensize(width=None)设置线条的粗细为 width 或返回该值
代码:
在画布的四个不同位置,绘制了4个半径为50的圆
import turtle as t
# 设置海龟形状和速度
t.shape("turtle")
t.speed()
t.pu() #抬笔
t.setpos(-100,100) #将画笔移动到(-100,100)的位置
t.pd() #落笔,开始绘制半径为50的圆
t.circle(50)
t.pu() #抬笔
t.goto(100,100) #将画笔移动到(100,100)的位置
t.pendown() #落笔,开始绘制半径为50的圆
t.circle(50)
t.penup() #抬笔
t.setposition(100,-100) #将画笔移动到(100,-100)的位置
t.pendown() #落笔,开始绘制半径为50的圆
t.circle(50)
t.pu() #抬笔
t.setpos(-100,-100) #将画笔移动到(-100,-100)的位置
t.pd() #落笔,开始绘制半径为50的圆
t.circle(50)
t.ht() #隐藏海龟颜色控制和填充
1、turtle.pencolor(colorstring)设置画笔颜色为 colorstring 指定的 Tk 颜色描述字符串,例如 "red"、"yellow" 或 "#33cc8c"
2、turtle.fillcolor(colorstring)设置填充颜色为 colorstring 指定的 Tk 颜色描述字符串,例如 "red"、"yellow" 或 "#33cc8c"。
3、turtle.color(colorstring1, colorstring2)设置画笔颜色和填充颜色,相当于 pencolor(colorstring1) 加 fillcolor(colorstring2)
4、turtle.filling()返回填充状态 (填充为 True,否则为 False)
5、turtle.begin_fill()在绘制要填充的形状之前调用
6、turtle.end_fill()填充上次调用 begin_fill() 之后绘制的形状
代码:
from turtle import *
# 设置海龟形状和速度
shape("turtle")
speed()
color('red','light blue') # 设置画笔颜色为red,填充颜色为light blue
begin_fill() # 开始填充
pu() #抬笔
setpos(-100,100) #将画笔移动到(-100,100)的位置
pd() #落笔,开始绘制半径为50的圆
circle(50)
end_fill() # 结束填充
pu() #抬笔
goto(100,100) #将画笔移动到(100,100)的位置
pendown() #落笔,开始绘制半径为50的圆
circle(50)
penup() #抬笔
setposition(100,-100) #将画笔移动到(100,-100)的位置
pendown() #落笔,开始绘制半径为50的圆
circle(50)
#修改画笔颜色为blue,填充颜色为orange
pencolor('blue')
fillcolor('orange')
begin_fill() # 开始填充
pu() #抬笔
setpos(-100,-100) #将画笔移动到(-100,-100)的位置
pd() #落笔,开始绘制半径为50的圆
circle(50)
end_fill() # 结束填充
ht() #隐藏海龟
一开始使用color('red','light blue'),设置画笔和填充颜色分别为red和light blue,绘制完第一个圆之后,开始填充。
第二个和第三个圆并没有设置填充颜色,在绘制第四个圆之前,利用
1、pencolor('blue')
2、fillcolor('orange')
修改了画笔和填充的颜色。更改背景颜色
turtle.bgcolor(*args)一个颜色字符串或三个取值范围 0..colormode 内的数值或一个取值范围相同的数值3元组
更多可以关注公众号【陪孩子一起学编程】