2.3 turtle库

turtle库是能够进行基本的图形绘制的标准库。

python turtle动画 python turtle.done_python


turtle库包含100多个功能函数,主要包括三类:窗体函数、画笔运动函数、画笔状态函数2.3.1 窗体函数

python turtle动画 python turtle.done_开发语言_02


注:像素是指组成图像的小方格,每个小方格都有一个明确的位置和被分配的色彩数值。

另外画布的大小与计算机的分辨率有关系,计算机的分辨率是指显示器所能显示的像素有多少。

窗体函数写法:turtle.setup(width,height,startx,starty) 需要与turtle.done()配合使用,否则运行出的窗口会消失。因此done()函数需要在绘制程序的最后面

import turtle
turtle.setup(200,200,50,50)#窗格大小为200X200,距离屏幕左侧与顶部均为50
turtle.done()#done()函数保证运行出的窗口一直显示

输出的窗格:

python turtle动画 python turtle.done_开发语言_03


2.3.2 画笔运动函数

重点的画笔运动函数:

python turtle动画 python turtle.done_学习_04


**注意:**若不指定方向和起点,则默认方向为向右,默认起点为窗格正中心。

  • forward()函数:沿着当前方向前进指定距离。可以简写为fd()
import turtle
turtle.setup()
turtle.forward(200)#沿着当前方向前进200个像素
turtle.done()#done()需要在绘制程序的最后面

绘制窗格:

python turtle动画 python turtle.done_python_05

  • backward()函数:沿着当前相反方向后退指定距离
    也简写为back(),或bk()
import turtle
turtle.setup()
turtle.forward(200)
turtle.forward(200)
turtle.back(200)#沿着指定相反方向后退200个像素
turtle.done()#done()需要在绘制程序的最后面

绘制窗格:

python turtle动画 python turtle.done_学习_06


可以看到箭头依旧向右,因为指定方向为右

  • right(a)函数:向右旋转a角度
  • left(a)函数:向左旋转a角度
import turtle
turtle.setup()
turtle.right(90)#由默认方向向右旋转90度
turtle.fd(200)#绘制200像素
turtle.left(90)#再向左旋转90度
turtle.fd(200)#绘制200像素

turtle.done()#done()需要在绘制程序的最后面

绘制窗格:

python turtle动画 python turtle.done_python turtle动画_07

  • sethead(a)函数:以默认方向为起始,将当前朝向设置为a角度
import turtle
turtle.setup()
turtle.right(90)
turtle.fd(200)
turtle.left(90)
turtle.fd(200)
turtle.seth(120)
turtle.fd(200)

turtle.done()#done()需要在绘制程序的最后面

绘制窗格

python turtle动画 python turtle.done_开发语言_08


可以看到第三条线角度为:以向右为起始偏转120度。

  • goto()函数:移动到绝对的坐标处
import turtle
turtle.goto(100,100)
turtle.goto(-100,100)
turtle.done()

绘制窗格

python turtle动画 python turtle.done_学习_09


可以看到位置是根据绝对坐标进行变换的,始终以屏幕正中心为(0,0)

  • circle(r,e)函数:绘制一个指定半径r和角度e的圆或者弧形
import turtle
turtle.circle(100,200)
turtle.done()

绘制窗格

python turtle动画 python turtle.done_ci_10

  • undo()函数:撤销画笔的最后一步动作
  • speed()函数:设置画笔的绘制速度,参数为0-10之间。
  • 绘制八边形
import turtle

for i in range(8):
   turtle.seth(i*360/8)
   turtle.fd(100)
turtle.done()

绘制窗格

python turtle动画 python turtle.done_学习_11


2.3.3 画笔状态函数

python turtle动画 python turtle.done_开发语言_12

  • penup()函数:提起画笔,即使位置移动也不会绘制线条
  • pendown()函数:放下画笔,继续绘制。
import turtle
turtle.penup()#提起画笔
turtle.fd(200)#前进200像素
turtle.pendown()#放下画笔
turtle.circle(100,360)#画一个圆
turtle.done()

绘制窗格

python turtle动画 python turtle.done_学习_13

  • pensize(width)函数:设置画笔的粗细为指定大小
  • color()函数:设置画笔的颜色,可以使用英文单词或者十六进制
import turtle
turtle.fd(100)#默认画笔size为1,前进100像素
turtle.pensize(5)#修改size为5
turtle.color("#B80000")#修改颜色
turtle.circle(100,360)#绘制圆
turtle.done()

绘制窗格

python turtle动画 python turtle.done_学习_14

  • begin_fill()函数和end_fill()函数需要配合使用,填充前调用begin_fill(),填充后调用end_fill()才会完成填充
  • filling()函数用于返回填充状态,True为填充,False为未填充。需要在end_fill()前使用才可获得是否成功填充的状态
import turtle
turtle.begin_fill()#开始填充
turtle.color("#B80000")#颜色选择,若不选默认填充黑色
turtle.circle(100,360)#绘制圆
print(turtle.filling())#输出填充状态
turtle.end_fill()#完成填充
turtle.done()

绘制窗格

python turtle动画 python turtle.done_开发语言_15

  • clear()函数:清空当前窗口,但不改变画笔位置
  • reset()函数:清空当前窗口,并且位置回到默认值
  • screensize()函数:设置画布的长和宽
    可以结合setup()函数使用,当画布大小大于窗口大小时,会自动出现滚动条
import turtle
turtle.setup(500,500)
turtle.screensize(1000,1000)

python turtle动画 python turtle.done_开发语言_16

  • hideturtle()函数:可以隐藏小箭头
  • showturtle()函数:可以显示小箭头
import turtle
turtle.setup(500,500)
turtle.screensize(1000,1000)
turtle.hideturtle()#隐藏小箭头
turtle.circle(100,360)
turtle.done()

python turtle动画 python turtle.done_开发语言_17


2.3.4 练习

  • 丘比特之心
import turtle
def Peach_heart():#绘制心形
    turtle.left(135)
    turtle.fd(100)
    turtle.right(180)
    turtle.circle(50,-180)
    turtle.left(90)
    turtle.circle(50,-180)
    turtle.right(180)
    turtle.fd(100)
turtle.begin_fill()#调用填充函数 
turtle.color('red')#颜色为红色
Peach_heart()#调用心形函数
turtle.penup()#提起画笔
turtle.goto(100,30)#位置定位为100,30处
turtle.pendown()#放下画笔
turtle.seth(0)#初始角度调整为0 
Peach_heart()#再次调用心形函数
turtle.end_fill()#完成填充
turtle.penup()#提起画笔
turtle.goto(-100,30)
turtle.pendown()
turtle.seth(25)#角度调整为25
turtle.pensize(5)#画笔size调整
turtle.color('black')
turtle.fd(350)#绘制直线
turtle.done()

绘制窗格

python turtle动画 python turtle.done_python turtle动画_18