Python中的绘图模块——turtle库!!(介绍+使用举例)

turtle库

        turtle(海龟)是Python内置的一个标准模块,它提供了绘制线、圆以及其它形状的函数,使用该模块可以创建图形窗口,在图形窗口中通过简单重复动作直观地绘制界面与图形。

        主要使用方面为:创建窗口、设置画布、绘制图形


创建窗口

        图形窗口也称为画布(canas),控制台无法绘制图形,使用turtle模块绘制图形化界面,需要先使用setup()函数创建图形窗口。

turtle.setup(width, height, startx=None, starty=None)
  • width是窗口宽度,值为整数时,表示以像素为单位的尺寸
  • heigth是窗口高度,值为小数时,表示图形窗口的宽或高与屏幕的比例
  • startx是窗口在计算机屏幕上的横坐标
  • starty是窗口在计算机屏幕上的纵坐标

        startx、starty的取值可以为整数或None; 当取值为整数时,分别表示图形窗口左侧、顶部与屏幕左侧、顶部的距离(单位为像素); 当取值为None时,窗口位于屏幕中心。


设置画笔

        画笔(pen)的设置包括画笔属性,如尺寸、颜色的设置,和画笔状态的设置。

1.画笔属性函数

turtle.pensize(<width>)	# 设置画笔尺寸
turtle.speed(speed)		# 设置画笔移动速度
turtle.color(color)		# 设置画笔颜色
  • pensize()函数的参数width可以设置画笔绘制出的线条的宽度
  • speed()函数的参数speed用于设置画笔移动的速度
  • color()函数的参数color用于设置画笔的颜色

2.画笔状态函数

turtle.penup()    # 提起画笔
turtle.pendown()  # 放下画笔
  • turtle模块中为penup()和pendown()函数定义了别名
  • penup()函数的别名为pu()
  • pendown()函数的别名为pd()。

绘制图形

1.移动控制函数

turtle.forward(distance)    # 向前移动
turtle.backward(distance)	# 向后移动
turtle.goto(x,y=None)		# 移动到指定位置
  • 函数forward()和backward()的参数distance用于指定画笔移动的距离,单位为像素
  • 函数goto()用于将画笔移动到画布上指定的位置,该函数可以使用x、y分别接收表示目标位置的横坐标和纵坐标,也可以仅接收一个表示坐标向量的参数。

2.角度控制函数

turtle.right(degree)	# 向右转动
turtle.left(degree)	    # 向左转动
turtle.seth(angle)		# 转动到某个方向
  • 函数right()和left()的参数degree用于指定画笔向右与向左的角度
  • 函数seth()的参数angle用于设置画笔在坐标系中的角度

3.绘制函数

turtle.circle(radius, extent=None, steps=None)
  • 参数radius用于设置半径
  • 参数extent用于设置弧的角度

  •  radius为正时,画笔以原点为起点向上绘制弧线
  • radius为负时,画笔以原点为起点向下绘制弧线
  • extent为正时,画笔以原点为起点向右绘制弧线
  • extent为负时,画笔以原点为起点向左绘制弧线

4.图形填充

turtle.begin_fill()    # 开始填充
turtle.end_fill()      # 结束填充

举例:绘制多个起点相同但大小不同的五角星

import turtle as t
def draw_fiveStars(leng):
 count = 1
 while count <= 5:
  t.forward(leng)
  t.right(144)
  count += 1
 leng += 10
 if leng <= 100:
  draw_fiveStars(leng)
def main():
 t.penup()
 t.backward(100)
 t.pendown()
 t.pensize(2)
 t.pencolor('red')
 segment = 50
 draw_fiveStars(segment)
 t.exitonclick()
if __name__ == '__main__':
 main()

效果图如下: