Python之turtle库的学习与使用——画图

最近入坑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画图逻辑比较简单,有想法的小伙伴可以试试!

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值