目录
一,概述
python中的绘制图库turtle能够实现在计算机上和在本子上绘图一样轻松,我们只需要导入turtle库,之后调用相关的函数即可。现在我们来一一认识:
二,turtle的属性和函数
turtle有许多属性,如画笔及箭头颜色,画笔的形状,绘画的速度,画笔的大小(画笔尺寸)等。
1,颜色
颜色有三种表示方式:一种是字符串的形式,一种是rgb的形式,最后一种是十六进制的形式。
- 字符串形式:例如‘yellow’,‘red’,‘green’等。这种形式有一个要求,就是必须知道对应颜色的英文该怎么写,如果颜色再特别点的,如淡粉,深灰等就不大好使用这种方式去表示。
- RGB形式:例如:(255,255,255)--白色等。rgb形式就是我高中时候经常使用的一种颜色表示形式,因为那个时候对颜色要求不大,只需要三种原色,红绿蓝就行。但是也不大推荐,它的颜色种类不多
- 十六进制形式:例如“#FF0000”红色等。十六进制的颜色可以不用自己去写,直接使用在线的颜色选取器即可:在线颜色选择器 | RGB颜色查询对照表
我们现在可以通过简单的设置画笔的笔头的颜色及画出来的线的颜色来进行个性化设置,如下我将把画笔的笔头颜色设置为红色,画出来的直线为蓝色:
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle # 导入海龟库
if __name__ == '__main__':
turtle.color("#EE3B3B") # 笔头颜色
turtle.pencolor("#33ff33") # 线的颜色
turtle.forward(200) # 绘制一条200像素的直线
turtle.done() # 需要调用done函数,不然窗口就会一闪而逝
如上,我们可以看到绘制的笔头默认是一个小三角形,并且,箭头默认是往右边跑的。
接下来我们去修改笔头的形状。
2,形状函数
我们可以使用turtl.shape(shape_name)设置或修改笔头的形状,python支持以下六种形状:
“arrow”,“turtle”,“circle”,“square”,“triangle”,“classic”
(“箭头”、“乌龟”、“圆形”、“方形”、“三角形”、“经典”)
大家可以去运行如下代码进行查看这些形状的改变:
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle # 导入海龟库
if __name__ == '__main__':
turtle.color("#EE3B3B") # 笔头颜色
turtle.pencolor("#33ff33") # 线的颜色
turtle.speed(1) # 可以让海龟跑得更快【数字越大,速度越快,范围为:1~10】
turtle.shape("turtle") # 海龟
turtle.forward(200)
turtle.right(60)
turtle.shape("arrow") # 箭头
turtle.forward(200) # 右直走200像素
turtle.right(60) # 向右拐90度 可用left(-90)替代
turtle.shape("square") # 正方形
turtle.forward(200)
turtle.right(60)
turtle.shape("classic") # 经典(小箭头)
turtle.forward(200)
turtle.right(60)
turtle.shape("triangle") # 大箭头
turtle.forward(200)
turtle.right(60)
turtle.shape("circle") # 圆形
turtle.forward(200)
turtle.done() # 加上done函数之后窗口就不会一闪而过
3,状态函数
相信大家也发现了上面的代码中出现了turtle.done()函数的使用,该函数表示我们的绘图结束,并将窗口保持打开的形式进行展示,如果不是该函数的话我们的窗口就会一闪而逝,根本就来不及看清到底画了个啥。除了done函数,turtle还有penup,pendown函数,这两个函数分别表示画笔的提起和画笔的放下,在下面的控制语句那里我们就会看到它们两与goto移动控制函数一起使用。
4,控制函数
如果运行了上面含有right,left,forward等函数的代码的,应该会对这三个移动控制函数有更加多的认识,见名知义,没错,这三个移动控制函数都是控制我们的海龟向右,向左,向前进行跑动的,但是移动控制函数不止这三个函数,有向前的函数自然就会有向后的函数,该函数为:backward,该函数会控制海龟向后运动,值得一提的就是goto函数,该移动控制函数可以将我们的海龟直接移动到指定的位置,但是它需要和penup和pendown函数一起使用,才不会留下长长的一段线,实现直接跳到该指定位置的作用和功能。
控制函数还有角度控制函数,图形绘制和图形填充控制函数。
接下来我们使用代码来更进一步的认识与了解:
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle
if __name__ == '__main__':
turtle.color("#FF0000") # 笔头的颜色红色
turtle.pencolor("#87CEEB") # 线的颜色淡蓝色
turtle.forward(200) # 前进200像素
turtle.pencolor("#0A0A0A") # 深黑色
turtle.backward(100) # 后退100像素
turtle.pencolor("#000080") # 深蓝色
turtle.forward(100)
turtle.left(90) # 向左转弯90度
turtle.pencolor("#00EE00") # 绿色
turtle.forward(200)
turtle.pencolor("#87CEEB") # 线的颜色淡蓝色
turtle.right(90) # 向右转弯90度
turtle.forward(200)
turtle.penup() # 让海龟起来
turtle.goto(44,55) # 海龟移动位置
turtle.pendown() # 海龟移动到好位置之后累得趴了下来
turtle.left(90) # 让海龟向左转90度
turtle.forward(200)
turtle.done() # 结束函数
5,circle图形绘制函数
形如:circle(radius,extent,steps)
- radius:半径,如果半径是正数,海龟以原点为起点向右上逆时针绘制弧线,反之向右下顺时针绘制。
- extent:弧度,如果弧度是负数,海龟以原点为起点向左上顺时针绘制弧线。
- steps:步长,如果步长没有设置,那么默认是话对应的radius半径,extent弧度的圆。如果向里面传入了其他数字,如3(为三角形),4(菱形),5(5边形),6(6边形)等
如下,绘制一整个圆,(弧度为360,半径为66):
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle
if __name__ == '__main__':
turtle.circle(66,360)
turtle.done()
绘制一个菱形:
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle
if __name__ == '__main__':
turtle.circle(66,360,steps=4)
turtle.done()
6,图形填充函数
我们之前绘制的图像都是中间没有颜色的,显得不大丰富多彩,python也提供了相关的图形填充函数,fillcolor(填充什么颜色),begin_fill(开始填充),end_fill(结束填充)等三个函数。接下来我们使用代码来查看具体的使用及效果,如下:
# -*- encoding: utf-8 -*-
"""
@author:Low-level programmer
"""
import turtle
if __name__ == '__main__':
turtle.fillcolor("#00EEEE") # 将要填充的颜色
turtle.begin_fill() # 表示开始填充颜色
turtle.circle(66,360) # 绘制一个半径为66,弧度为360的圆
turtle.end_fill() # 表示结束填充颜色
turtle.done()
有问题请在评论区留言。