Turtle库是Python中一个绘制图像的函数库,可以用其中的函数绘制各种图像。
画布
turtle.screensize(width,height,''color'') 三个参数,前两个确定画布的大小,第三个确定画布的颜色
turtle.screensize() 无参时,默认画布大小为400*300 颜色为白色。
turtle.setup(width=0.5, height=0.75, startx=None, starty=None),该函数设置的是运行窗口的大小和位置
参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
小海龟的出生点是(0,0) 方向向右
画笔
小海龟的在画布上的绘画就想我们拿笔在画布上画画一样,这里有一些画笔的基础函数
turtle.pensize(x) 设置的是笔的宽度,可以类比成一下2B,4B这样的铅笔
#例如
turtle.pensize(5)
#此时的笔宽为5个像素
turtle.pencolor(‘color’) 设置的是笔的颜色
turtle.pencolor('red')
#笔的颜色为红色
turtle.speed(x) 设置的是挥笔的速度,也就是海龟的移动速度, x是0到10的整数,速度从慢到快
绘画
turtle 库里有许多移动指令,这些移动指令都会产生笔迹,可以用来绘画.
移动指令
turtle.forward(d) | 可以写成turtle.fd(d),向当前方向前进d像素 |
turtle.backward(d) | 可以写成turtle.bk(d),向当前方向的反方向前进d像素 |
turtle.right(r) | 向右偏转r度 例如turtle.right(45) 向右偏转45度 |
turtle.left(r) | 向左偏转r度 例如turtle.right(45) 向左偏转45度 |
turtle.setheading(r) | 可以写成turtle.seth(r),将海龟的指向r方向 ,在直角坐标系中.例如turtle.seth(180)将海龟方向设置为x轴的负方向. |
turtle.sety(d) | 将海龟在y方向移动d像素 |
turtle.setx(d) | 将海龟在x方向移动d像素 |
turtle.goto(x,y) | 将海龟移动到(x,y) |
turtle.penup() | 将笔抬起,其后的移动指令将不再有笔迹 |
turtle.pendown() | 与penup()合用,落笔.其后的移动指令有笔迹 |
turtle.home() | 海龟回到原点. |
turtle.circle(radius,extent=None) | 根据半径radius绘制extent角度的弧形 |
画笔指令
turtle.dot(size,'color') | 设置笔点(海龟)的大小及颜色 |
turtle.fillcolor('color') | 填充颜色 |
turtle.color('color1','color2') | 同时设置pencolor和 fillcolor pencolor=color1 ,fillcolor =color2 |
turtle.begin_fill() | 开始填充颜色 |
turtle.end_fill() | 结束填充颜色 |
turtle.hideturtle() | 可以写成turtle.ht()隐藏海龟, |
turtle.showturtle() | 可以写成turtle.st()显示海龟 |
turtle.shape('shape') | shape=''arrow''小箭头''turtle”海龟 “circle”圆形 “square”方形 “triangle”三角形 “classic”箭头 |
实例
五角星
import turtle
turtle.screensize(800,800,'red')
t=turtle.Pen()
t.color('white','red')#同时设置pencolor和fillcolor
t.speed(2)
t.fillcolor('black')
t.begin_fill()
t.forward(200)
t.left(144)
t.forward(200)
t.left(144)
t.forward(200)
t.left(144)
t.forward(200)
t.left(144)
t.forward(200)
t.end_fill()
爱心
from turtle import *
color('red','pink')
begin_fill()
left(135)
fd(100)
right(180)
circle(50,-180)
left(90)
circle(50,-180)
right(180)
fd(100)
end_fill()
hideturtle()
done()