注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。
turtle库基本介绍
turtle库,1969年诞生,被Python语言借鉴,成为Python的标准库。
turtle名称含义为“海龟”,我们想象一只海龟,位于显示器上窗体的正中心,在画布上游走,它游走的轨迹就形成了绘制的图形。海龟的运动是由程序控制的,它可以变换颜色,改变尺寸、大小等。利用turtle可以制作很多复杂的绘图。
turtle库绘图窗体布局
turtle.setup(width, height[, startx, starty])
setup()设置窗体大小及位置。width, height分别是窗体本身的宽度和高度,如下图所示。startx, starty是可选参数。
turtle的绘图窗体
turtle空间坐标体系
turtle空间坐标体系
turtle坐标
turtle坐标移动
turtle绝对角度坐标体系
turtle绝对角度的坐标系
turtle.seth(angle)用来改变海龟行进方向,参数angle为绝对角度(角度制的度数值,不带°号)。
turtle海龟角度的坐标系
用turtle.right(angle)和turtle.left(angle)来改变turtle行进的方向角度。
某个turtle绘图示例如下:
import turtleturtle.left(45)turtle.fd(150)turtle.right(135)turtle.fd(300)turtle.left(135)turtle.fd(150)
RGB色彩体系
RGB由三种颜色构成的万物色。
- RGB指红蓝绿三个通道的颜色组合。
- 覆盖视力所能感知的所有颜色。
- RGB每色取值范围是0~255整数,或0~1小数。
turtle默认使用RGB的小数值改变颜色,turtle.colormode(mode)
- 1.0:RGB小数值模式。
- 255:RGB整数值模式。
拿紫色的RGB整数值模式(160, 32, 240)做例子,将其每个颜色数值除以255,保留两位小数,就能得到其RGB小数值模式(160/255, 32/255, 240/255),即(0.63, 0.13, 0.94)。
常用的RGB色彩1
常用的RGB色彩2
turtle画笔控制函数
画笔操作后一直有效,一般成对出现。
-turtle.penup(),别名turtle.pu()。
抬起画笔,海龟在飞行。这时的轨迹不在画布上形成痕迹。
-turtle.pendown(),别名turtle.pd()。
落下画笔,海龟在爬行。这时的轨迹在画布上形成痕迹。
turtle.pu()和turtle.pd()是成对出现的。
-turtle.pensize(width) 别名 turtle.width(width)。
画笔宽度,海龟的腰围。
-turtle.pencolor(color),color为颜色字符串或RGB值。
画笔颜色,海龟在涂装。
pencolor(color)的color参数可以有三种形式:
- 颜色字符串:-turtle.pencolor("purple")
- RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
- RGB的元组值:turtle.pencolor((0.63, 0.13, 0.94))
turtle运动控制函数
控制海龟行进:走直线&走曲线:
-turtle.forward(d) 别名 turtle.fd(d),走直线
向前行进,海龟走直线。d:行进距离,可以为负数。
-turtle.circle(r, extend=None),走曲线
根据半径r绘制extent角度的弧形。r是默认圆心在海龟左侧r距离的位置。extent是绘制角度,默认是360°即整圆;当extent为正数时,圆从turtle当前位置逆时针方向(即顺象限方向)画圆心角为|extent|角度(角度制)的弧形;当extent为负数时,圆从turtle当前位置顺时针方向(即逆象限方向)画圆心角为|extent|角度(角度制)的弧形。
turtle方向控制函数
控制海龟面对方向:绝对角度&海龟角度
-turtle.setheading(angle) 别名turtle.seth(angle)——绝对角度 改变行进方向,海龟走的绝对角度。angle:改变行进方向的绝对角度。
-turtle.left(angle), turtle.right(angle)
改变行进方向,海龟走的海龟角度。angle:改变行进方向的海龟角度。
“Python蟒蛇绘制”代码实例
import turtleturtle.setup(650, 350, 200, 200)turtle.penup()turtle.fd(-250)turtle.pendown()turtle.pensize(25)turtle.pencolor("purple")turtle.seth(-40)for i in range(4): turtle.circle(40, 80) turtle.circle(-40, 80)turtle.circle(40, 80/2)turtle.fd(40)turtle.circle(16, 180)turtle.fd(40 * 2/3)turtle.done() # 用来保持程序的图象存在。若没有这行,程序运行完成后会自动退出。
turtle.done() 用来停止画笔绘制,但绘图窗体不关闭。
To be continued.