海龟编程 python绘图工具turtle库的用法 turtle库使用方法大全,画笔设置 画布设置 绘图设置,画笔粗细,画笔颜色, 画笔速度。

755 阅读19分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

海龟编程 Python绘图工具trutle库的使用方法

trutle库,因绘图界面有个小海龟当画笔被称为海龟编程,是Python用来绘画绘图使用的库,可以绘制动漫角色,统计图等一些简单的平面图。命令也比较灵活,使用简单。也是考Python计算机二级中必须要会的Python库。

使用前,需先在Python中导入trutle库。

import turtle

画布:

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

turtle.screensize(canvwidth=none, canvheight=none, bg=none)

turtle.screensize(800,600,”green”)       #画布的宽,高,画布颜色

turtle.screensize()                               #返回默认大小(400,300)

画笔:

turtle.pensize()              设置画笔的宽度

turtle.pencolor()            传入参数可设置画笔的颜色,可以是字符串”green”,”red”,也可以RGB 3元组,不传入参数则返回当前画笔的颜色

turtle.speed()                 设置画笔的移动速度,画笔绘制的速度范围[0,10]的整数,数字越大越快

画笔运动命令:

画笔运动命令大学学习时务必牢记,很常用的

turtle.forward(distance)        向当前画笔方向移动distance像素长

turtle.backward(distance)      向当前画笔相反方向移动distance像素长度

turtle.right(degree)               顺时针移动degree°

turtle.left(degree)                 逆时针移动degree°

turtle.seth(angle)                   只改变海龟的行进方向(角度按逆时针),但不行进,angle为绝对度数

turtle.pendown()                  移动时绘制图形,缺省时也会绘制。落笔

turtle.penup()                       移动时不绘制图形,用于换个地方绘制时使用,提笔

turtle.goto(x,y)                     将画笔移动到坐标为x,y的位置

turtle.speed()               画笔绘制的速度范围[0,10]整数,建议加在前面

turtle.circle()                 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

画笔的控制命令:

turtle.pensize(width)           绘制图形时的宽度

turtle.pencolor()                  画笔颜色

turtle.fillcolor(colorstring)    绘制图形的填充颜色

turtle.color(color1,color2)    同时设置pencolor=color1,fillcolor=color2 设置画笔颜色和填充颜色

turtle.filling()                        返回当前状态是否在填充状态

turtle.begin_fill()                  准备开始填充图形

turtle.end_fill()                     填充完成

turtle.hideturtle()                 隐藏箭头显示

turtle.showturtle()               与hideturtle()函数对应

全局控制命令:

print(turtle.pos())                 获取鼠标当前位置并输出turtle.clear()                      清空turtle窗口,但是turtle的位置和状态不会改变turtle.reset()                      清空窗口,重置turtle状态为起始状态turtle.undo()                       撤销上一个turtle动作turtle.isvisible()                  返回当前turtle是否可见stamp()                             复制当前图形turtle.write(s[,font=(“font-name”,font_size,”font_type”)])

turtle.write("华哥最帅")

写文本,s为文本内容,font是字体参数,里面分别为字体大小和类型;font为可选项,font的参数也是可选项

turtle.exitonclick()   画完后不关闭窗口,点击界面后就会退出,退出后执行后续程序turtle.done()  画完后不关闭窗口,但是后面的程序无法执行,关闭窗口后才会执行

常见的Python等级考试题目:

python等级考试中,trutle库绘图是必考项目,所以要熟练使用turtle库,下面我列举了几道经典的turtle绘图题目,供大家参考学习。

圆中方

#圆中方 
import turtle           #导入turtle库
turtle.speed(1)         #设置画笔速度为10,画笔速度可以为1~10,速度越大速度越快
turtle.pensize(2)       #画笔粗细为2,数字越大越粗
for i in range(4):      #设置后续代码循环画的次数,这里是循环四次
    turtle.fd(200)      #画笔的移动距离为200个像素点
    turtle.left(90)     #移动完200个像素点后,画笔左转90°
turtle.left(-45)        #循环结束后,画笔左转-45°
turtle.circle(100*pow(2,0.5))    #绘制半径为100的圆形
turtle.done()        #画完后画布不消失,点击界面后消失
print("画完了")      #画布消失后才会继续执行后续语句

三色同心圆:

#三色同心圆
import turtle as t               #导入turtle库,并取个别名
t.pensize(4)
color = ['red','pink','green']   #创建一个储存颜色的列表
ra = [20, 50, 100]               #创建一个储存圆半径的列表
for i in range(3):               #循环三次,i存储循环次数的数字
    t.pu()                       #pu penup的缩写,也就是抬起笔,移动时不会绘画图形
    t.goto(0,-ra[i])             #让画笔移动到[0,-ra[i]] 的位置
    t.pd()                       #pd  pendown 的缩写,放下笔,开始绘画。
    t.pencolor(color[i])         #画笔颜色换成color列表里索引为i的颜色
    t.circle(ra[i])              #绘制半径为ra列表里索引为i的半径
t.done()                         #绘制完成后画笔不消失

四个圆中方:

#四个圆中方
import turtle as t           #导入turtle库,并取个别名t
dianwei=[-150,-50,50,150]    #指定四个起始点位,将其存在dianwei列表中
for i in range(4):           #循环四次,并将循环次数存在i中
    t.penup()                #抬笔,移动时不会绘画
    t.goto(dianwei[i], 0)    #将画笔移动到dianwei列表索引为i的x轴位置
    t.pendown()              #落笔,开始绘画
    for x in range(4):       #多个步骤重复,所以将代码写入循环,四个边,循环四次
        t.forward(50)        #画笔向前50个像素点
        t.left(90)           #画笔左转90度
    t.left(-45)              #画完一个正方形后,画笔向右转动45度,也就是left(-45)
    t.circle(35)             #画一个半径为三十五的圆
    t.left(45)               #画完圆后,将角度调正,否则后续的正方形角度会歪掉
t.done()                      #画完后画布不消失

螺旋正方

哈哈,这里想看看循环加多点会发生什么,结果就是下面,考试时是10次循环就够了

#螺旋正方
import turtle     #导入turtle库
turtle.pensize(3)  #画笔粗细为3
turtle.speed(10)   #画笔绘制速度为10,1~10,数字越大速度越快
d = 0
k = 1
for j in range(100):
   for i in range(4):
       turtle.fd(k)
       d += 91
       turtle.seth(d)    #seth绝对度数
       k += 2
turtle.done()

随机生成随机颜色的圆:

循环次数越多,随机生成的圆越多

#生成随机位置,随机颜色的圆,并填充随机颜色
import turtle         #导入turtle库
import random         #导入random函数
color1=["red","yellow","pink","blue","black","green"]      #将颜色装入color1列表
for i in range(99):     #写入想要绘制圆圈的个数
    turtle.speed(10)    #画笔速度
    turtle.pensize(5)   #画笔粗细
    x= random.choice(color1)     #随机生成圆的边缘的颜色,并赋给x
    y= random.choice(color1)     #随机生成圆内部颜色,并赋给y
    turtle.pencolor(x)           #笔的颜色
    turtle.fillcolor(y)          #填充颜色
    x0 = random.randint(-300, 300)     #随机x轴区域,并赋值给x0
    y0 = random.randint(-300, 300)     #随机y轴区域,并赋值给y0
    turtle.penup()                     #抬笔,抬笔移动时不会绘制线条
    turtle.goto(x0,y0)                 #移动到随机的x轴和y轴

    turtle.pendown()                    #放笔,移动时开始绘制
    turtle.begin_fill()                 #开始填充颜色
    turtle.circle(50)                   #画一个半径为50像素点的圆
    turtle.end_fill()                   #结束填充
turtle.done()                           #绘制结束不关闭窗口