Turtle图形库:Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下。
在Turtle图形库中有许多常用的函数
画布是turtle用于绘图的区域,我们可以对画布的大小、颜色等进行设置
turtle.screen(1000,800,"blue")
#参数分别对应的是画布的宽、高(单位是像素)、背景颜色
turtle.screen()
#恢复默认值(500,400,“white”)
turtle.setup(width=0.5,height=0.75,startx=None,starty=None)
#width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例
#(startx,starty):表示矩形窗口定点的位置,如果为None,则窗口位于屏幕中心。
在学习画笔之前我们需要先对坐标轴进行了解。
在画布上,默认画笔位于坐标原点,朝向x轴正方向。(有的博主会形象地把画笔比喻为小乌龟)
描述画笔状态的两个参量:坐标位置、面向方向。
turtle.pensize()
#设置画笔的宽度
turtle.pencolor()
#没有参数传入,返回当前画笔颜色;
#传入参数设置画笔颜色,可以是字符串“red”等,也可以是RGB 3元组
turtle.speed()
#设置画笔移动速度,速度是[0,10]范围内的整数,数字越大,移动速度越快
turtle绘图主要分为三种命令代码:画笔运动命令、画笔控制命令、全局控制命令。
turtle.penup
#提起画笔移动,不会绘制出图形
turtle.pendown
#放下画笔移动,会绘制出图形
turtle.goto()
#传入参数(100,100),画笔就会到达坐标(100,100)
#如果是在pendown状态下,画笔就会从起始位置画一条直线到达(100,100)
#如果是在penup状态下,画笔就会直接到达(100,100)
turtle.home()
#使画笔回到原点位置
#pendown状态下,画笔会从上一位置画一条直线到达原点
#penup状态下,画笔会直接回到原点
turtle.forward()
#传入参数(100),就会向当前方向移动100像素长度
turtle.backward()
#传入参数(100),就会向当前方向的相反方向移动100像素长度
turtle.seth()
#传入参数(90),绝对旋转,以坐标轴方向为参考系旋转
#再次输入turtle.seth(90),方向不会发生变化
turtle.right()
#传入参数(90),相对旋转,以当前方向为参考系顺时针旋转
#再次输入turtle.right(90),方向发生改变
turtle.left()
#传入参数(90),相对旋转,以当前方向为参考系逆时针旋转
#再次输入turtle.left(90),方向发生改变
turtle.circle()
#传入参数(radius,extent),也就是传入半径和度数
#半径必填,但是度数可以不填,不填默认度数为(360)
turtle.setx()
#移动到x轴指定位置
#如果是在pendown状态下,画笔就会从上一位置画一条直线到达横坐标为100的位置,纵坐标不变
#如果是在penup状态下,画笔就会直接到达横坐标为100的位置,纵坐标不变
turtle.sety()
#移动到y轴指定位置
#如果是在pendown状态下,画笔就会从上一位置画一条直线到达纵坐标为100的位置,横坐标不变
#如果是在penup状态下,画笔就会直接到达纵坐标为100的位置,横坐标不变
turtle.pencolor()
#设置画笔颜色,可传入参数"red","green","blue"等或者RGB三元组
turtle.fillcolor()
#设置绘制图形的填充颜色,可传入参数"red","green","blue"等或者RGB三元组
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是否可见
turtle.stamp()
#复制当前图形
import turtle
turtle.width(10)
turtle.color("blue")
turtle.circle(50)
turtle.penup()
turtle.goto(120,0)
turtle.pendown()
turtle.color("black")
turtle.circle(50)
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.color("red")
turtle.circle(50)
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()
turtle.color("yellow")
turtle.circle(50)
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()
turtle.color("green")
turtle.circle(50)
turtle.penup()
turtle.goto(300,-50)
turtle.pendown()
turtle.done()
import turtle
turtle.pensize(2)
turtle.speed(1)
for x in range(4):
turtle.seth(45*(2*x+1))
turtle.fd(150)
turtle.seth(90*(x+1)+45)
turtle.circle(150,45)
turtle.goto(0,0)
turtle.done()
import turtle
turtle.pensize(2)
for x in range(100):
turtle.fd(x*2+1)
turtle.right(90)
if(x % 2 == 0):
turtle.pencolor("red")
else:
turtle.pencolor("green")
turtle.done()