最近入坑Python,下载了一个turtle扩展包,这是一个很流行的Python画图包,通过将一些简单的命令和类似的命令组合在一起,可以轻松绘制出复杂的形状和图片。
下面是turtle库Python官方说明文档,感兴趣的小伙伴可以自己学习。——https://docs.python.org/3.10/library/turtle.html
文章目录
1、turtle下载与安装
首先,我直接在PyCharm编辑器下载turtle,结果下载失败了。此路不通咱就换条路,毕竟条条大路通罗马🦌。
于是,我在Python扩展包官方下载网站(https://pypi.org/project/turtle/)上先将turtle下载到本地目录中来。在cmd中用python核心软件中的pip包管理工具进行安装,结果还是不行。
后面,在网上参考了这篇博客——windows下python3安装turtle安装以及解决方案,才得以解决。
问题主要在于:turtle库setup.py安装文件是用python2编写的,“python2的语法格式是没有括号的,但是python3没有括号就会报错”。解决办法就是将setup.py文件里的第四十行代码 except ( ValueError, ve):加上括号,然后再在cmd里执行:
pip install D:\Python\Python310\lib\sut-packages\turtle-0.0.2(此处 pip install 后面接的是你修改好的turtle文件夹所在位置)
2、turtle库绘图原理
turtle库绘图原理:有一只“海龟”在窗体正中心(为(0,0)坐标原点),在画布上游走,走过的轨迹形成了绘制的图形,“海龟”由程序控制,可以自由改变颜色、方向宽度等。
(注:以下内容参考:https://www.jb51.net/article/130181.htm)
1.画布(canvas)
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
1.1设置画布大小
①turtle.screensize(400,300,“white”), 参数分别为画布的 宽(单位像素), 高, 背景颜色。
②turtle.setup(width=800,height=800,startx=100,starty=100), 参数分别为:width,height:输入宽和高为整数时,表示像素,为小数时,表示占据电脑屏幕的比例;(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。
(图源:https://www.cnblogs.com/pandaMeng/p/13260767.html)
2.画笔
2.1画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2.2画笔的属性
①turtle.pensize(5):设置画笔的宽度,传入数字作为参数;
②turtle.pencolor(“red”):传入参数设置画笔颜色,可以是字符串如"green",“red”,可以是RGB3元组,也可以是十六进制颜色如"#733900";
③turtle.speed(5):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
2.3画笔控制命令
①turtle.fillcolor(“black”):绘制图形的填充颜色;
②turtle.color(“red”, “black”):同时设置pencolor=“red”, fillcolor=“black”;
③turtle.begin_fill():开始填充图形;
④turtle.end_fill():完成填充图形;
⑤turtle.filling():返回当前是否处于填充状态;
⑥turtle.hideturtle():隐藏画笔的turtle形状
⑦turtle.showturtle():显示画笔的turtle形状
2.4画笔运动命令
(图源:https://www.jb51.net/article/130181.htm)
⚪其中,goto(x,y)函数是依据turtle绝对坐标体系:
(图源:https://www.cnblogs.com/pandaMeng/p/13260767.html)
⚪circle()、forward()函数使用的是海龟坐标体系(依据海龟的朝向而定):
(图源:https://www.cnblogs.com/pandaMeng/p/13260767.html)
【PS:turtle.circle(radius,extent,steps) 函数详解:
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度):设置所画圆的弧度,例如extent=180时为半圆;
steps(边数):做半径为radius的圆的内切正多边形,多边形边数为steps。】
⚪setheading()函数依据的是角度坐标体系:
(图源:https://www.cnblogs.com/pandaMeng/p/13260767.html)
3.全局控制命令
(图源:https://www.jb51.net/article/130181.htm)
4.其他命令
(图源:https://www.jb51.net/article/130181.htm)
3、画图例子
用turtle画五角星:
import turtle
turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")
turtle.begin_fill()
for _ in range(5):
turtle.forward(300)
turtle.right(144)
turtle.end_fill()
turtle.mainloop()
效果图:
用turtle画图逻辑比较简单,有想法的小伙伴可以试试!