当前位置 博文首页 > Python绘图之turtle库的基础语法使用

    Python绘图之turtle库的基础语法使用

    作者:简时刻 时间:2021-08-06 18:18

    目录
    • 前言
    • 一、turtle库的导入
    • 二、绘图命令介绍
      • 1. 画布属性设置
      • 2. 画笔属性设置
      • 3.  移动画笔和转角绘图
      • 4.  图形绘制与图形填充
    • 三、turtle绘图实例:绘制太阳花
      • 总结 

        前言

        Python语言的turtle库是一个直观有趣的图形绘制函数库,是python语言标准库之一。

        turtle库也叫海龟库,是turtle绘图体系的Python实现。turtle库是Python语言的标准库之一,是入门级的图形绘制函数库。

        turtle绘图体系:也叫海龟绘图系统,它是在1969年诞生,主要用于程序设计入门的一种绘图方式。

        Python计算生态 = 标准库 + 第三方库

        标准库:随解释器直接安装到操作系统中的功能模块。

        第三方库:需要经过安装才能使用的功能模块。

        turtle官方文档:https://docs.python.org/3/library/turtle.html

        turtle库的绘图原理是在一个横轴为x、纵轴为y的坐标平面中,以原点(0,0)位置为开始点,根据一组函数指令的控制来移动,从而在它爬行的路径上绘制图形。

        一、turtle库的导入

        方法一:import turtle

        方法二:import turtle as t

        方法三:from turtle import *

        二、绘图命令介绍

        1. 画布属性设置

        语法 含义
        turtle.screensize(width,height,bg)   设置画布的宽、高、背景颜色
        turtle.setup(width,height,startx,starty)   设置画布显示窗口的大小、位置,前两个参数为窗口大小,后两个参数为起始点位置

        2. 画笔属性设置

        语法 含义
        turtle.pensize(width) 设置当前画笔线条的宽度为width像素
        turtle.colormode(1.0[255]) 设置画笔颜色模式
        turtle.pencolor(colorstring) 设置画笔的颜色,参数colorstring可以是"green"、"red"、"blue"、“yellow”等英文字符串
        turtle.speed(5) 设置画笔的移动速度,画笔绘制的速度范围在[0,10]整数之间,数字越大,画笔移动的速度越快。

        3.  移动画笔和转角绘图

        语法 含义
        turtle.penup()/pu()/up() 提起画笔,不绘图
        turtle.pendown()/pd()/down() 画笔移动时绘制图形
        turtle.forward(100)/fd(100) 画笔向当前方向移动100像素距离
        turtle.backward(100)/bk(100) 画笔向相反方向移动100像素距离
        turtle.right(45)/rt(45) 画笔顺时针移动45度
        turtle.left(45)/lt(45) 画笔逆时针移动45度
        turtle.setheading(45)/seth(45) 设置当前画笔朝向为45度
        turtle.goto(x,y) 移动画笔到指定坐标位置
        turtle.hideturtle() 隐藏画笔turtle形状
        turtle.showturtle() 显示画笔turtle形状

        实例代码

        # coding:utf8
        import turtle as t
         
        t.setup(500, 500)    # 设置画布大小
        t.reset()            # 清空窗口
        t.pensize(4)         # 设置画笔大小为4
         
        # 绘制外层正方形
        t.penup()            # 提起画笔
        t.pencolor("red")    # 设置画笔颜色
        t.goto(-200, -200)    # 设置外层正方形起点坐标
        t.pendown()
        t.forward(400)       # 外层正方形边长为400像素
        t.left(90)
        t.forward(400)
        t.left(90)
        t.forward(400)
        t.left(90)
        t.forward(400)
         
        # 绘制中间正方形
        t.penup()
        t.pencolor("yellow")
        t.goto(-150, -150)   # 中间正方形起点坐标
        t.pendown()
        t.seth(0)           # 重新设定画笔角度为0°
        t.forward(300)
        t.left(90)
        t.forward(300)
        t.left(90)
        t.forward(300)
        t.left(90)
        t.forward(300)
         
        # 绘制内层中方形
        t.penup()
        t.pencolor("blue")
        t.goto(-100,  -100)    # 内层正方形起点坐标
        t.pendown()
        t.seth(0)
        t.forward(200)
        t.left(90)
        t.forward(200)
        t.left(90)
        t.forward(200)
        t.left(90)
        t.forward(200)
         
        t.done()

        4.  图形绘制与图形填充

        语法 含义
        turtle.circle(5,[extent,steps]) 绘制半径为5的圆形
        turtle.color(pencolor,fillcolor) 同时设置画笔颜色(边框颜色)和填充颜色
        turtle.begin_fill() 以当前为起点,开始填充颜色
        turtle.end_fill() 以当前为终点,结束填充图形
        turtle.done() 绘图结束后,保留窗口

        代码实例

        # coding:utf8
        import turtle
         
        turtle.setup(500, 500)
        turtle.reset()
        turtle.pensize(5)
         
        turtle.penup()
        turtle.goto(0, -200)
        turtle.pendown()
         
        # 绘制红边框蓝填充颜色的大圆
        turtle.color("red", "blue")
        turtle.begin_fill()
        turtle.circle(200)
        turtle.end_fill()
         
        # 绘制红边框绿填充颜色的大圆
        turtle.color("red", "green")
        turtle.begin_fill()
        turtle.circle(150)
        turtle.end_fill()
         
        # 绘制红边框黄填充颜色的大圆
        turtle.color("red", "yellow")
        turtle.begin_fill()
        turtle.circle(100)
        turtle.end_fill()
         
        turtle.done()

         

        三、turtle绘图实例:绘制太阳花

        import turtle as t        # 导入Turtle库,并指定导入库的别名为t
         
        t.color("red", "yellow")  # 同时设置pencolor=red, fillcolor=yellow
        t.speed(10)               # 设置画笔绘制的速度为10
        t.begin_fill()            # 准备开始填充图形
         
        for x in range(50):       # 利用for循环绘制太阳花
            t.forward(200)        # 向当前画笔方向移动200像素
            t.left(170)           # 逆时针旋转170度
         
        t.end_fill()              # 填充完成
        t.done()                  # 绘制完成后窗口不退出

        总结 

        jsjbwy
        下一篇:没有了