写在前面的话
第二天的教程已经更新,今天这个内容是带你编写一些好玩的例子的。跟我一起来吧
01-02.turtle绘图库
一. turtle简介
turtle库是Python的绘图函数库,turtle意思是乌龟, 想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点(0,0),位置开始,
根据一组函数指令的控制,在平面坐标系中移动,从而在它爬行的路径上绘制了图形。
考虑一下,要想画图,我们需要些什么:
- 画布(如果纸上作画,那么就是纸,涉及在多大的纸上作画,长宽需要指定)
- 画笔(笔,笔的线条粗细,颜色,笔的方向等)
1.用到的函数
对于零基础的小伙伴,我来解释一下这里的模块与函数。turtle是一个python提供的模块,导入到我们自己的程序之后,我们就可以使用该模块内定义的函数和类啦。
函数就是方法,就是你做什么事,达到什么目标,以及怎么做的。
比如你想赋值,然后想输出。
a = 5
print(a)
我们还可以将上面两条语句放到函数里:
万一我还想打印b的值咋办呢
都是可以的。下面我们使用
import turtle
然后就可以使用turtle里面的函数画图啦,加前缀turtle.是为了限定是这个模块里的函数。
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
参数分别为画布的宽(单位像素), 高, 背景颜色。
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
turtle.pensize()
设置画笔的宽度。
turtle.pencolor()
不传参数时,返回当前画笔颜色;传入参数则设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
turtle.speed(speed)
设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快
turtle.forward(distance)
画笔沿当前方向前进的像素值,计算机中,定义长度,按像素值或者百分比。像素就是屏幕上一个一个的点,就是大家经常看到的分辨率的东西。
比如 800X600的,1024x768的,这个都是宽度像素x高度像素。
turtle.backward(distance)
画笔沿当前方向后退的像素值
turtle.right(degree)
表示画笔顺时针旋转的度数,比如一开始画笔从左到右画了一条长度为100个像素的直线,然后right(90),那么笔的方向就从向右变成了向下。
turtle.left(degree)
画笔逆时针旋转的度数
turtle.goto(x,y)
将画笔移动到坐标(x,y),注意坐标原点,在画布的左上角,画布是在屏幕上的一块矩形区域。
turtle.penup()
提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.fillcolor(colorstring)
绘制图形的填充颜色
turtle.color(pencolor, fillcolor)
可以同时设置pencolor和fillcolor
turtle.begin_fill()
准备开始填充图形
turtle.end_fill()
填充完成
turtle.goto(x,y)
将画笔移动到坐标为x,y的位置
turtle.circle()
画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
turtle.write(s)
写文本,s为文本内容
turtle.mainloop()或turtle.done()
启动事件循环 -调用Tkinter的mainloop函数。
必须是乌龟图形程序中的最后一个语句。
关于坐标体系大家可以参考
https://www.cnblogs.com/nickchen121/p/11167694.html
2.安装turtle模块库
turtle是需要Tkinter作为基础,Tkinter在windows上python3.7安装的时候,你勾上安装就可以啦。 再
在linux下需要自己手动安装
sudo apt install python3-tk
3.程序解析
画矩形
我创建了源代码test.py,它就是模块test,为了下次可以调用它,我把里面的代码都包装成了函数。
看一下,15行暴露在最外面,函数是需要调用才会执行的,自己本身无法触发。name是python内置的一个模块属性,
如果从其他模块来引用它,name等于test的,只有当运行test.py本身,name才等于main。
所以你已经知道了入口,我们设置了笔的速度,颜色,以画布正中心为原点,在原点右边画了一个正方形。
for ... in ...这个是循环,意思就是小乌龟朝右向前跑了100个像素,然后向右旋转90度,方向朝下了,再往前跑100个像素
其实就是, turtle.forward(100)
turtle.right(90)
画一条线,改变小乌龟的前进方向,总共需要画四条线,因此range(4),产生(0,1,2,3)的一个列表,循环四次。
如果我们要填充颜色,怎么写呢?
最后我们还隐藏了小乌龟。
那么问题来了,如果是画一个矩形,应该怎么画呢,长和宽不想等,请大家动手哦
画太阳花
这个也很简单啦
我们调整小乌龟的方向度数就可以实现啦,是不是很有意思。
看完帖子在看这篇博客,就简单啦
https://www.cnblogs.com/chen0307/articles/9645138.html
最后我们再去看看教程第一天的程序源代码,会更难一点,但中心思想不变的。
从现在开始你要锻炼你的逻辑思维啦,后面我还会再分析,今天就到这了