吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1879|回复: 6
收起左侧

[Python 转载] [番外]turtle绘图尝试上手啦

[复制链接]
wuyangteam 发表于 2020-8-15 14:58
本帖最后由 wuyangteam 于 2020-8-15 15:03 编辑

写在前面的话

第二天的教程已经更新,今天这个内容是带你编写一些好玩的例子的。跟我一起来吧

01-02.turtle绘图库

一. turtle简介

turtle库是Python的绘图函数库,turtle意思是乌龟,  想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点(0,0),位置开始,
根据一组函数指令的控制,在平面坐标系中移动,从而在它爬行的路径上绘制了图形。
考虑一下,要想画图,我们需要些什么:

  • 画布(如果纸上作画,那么就是纸,涉及在多大的纸上作画,长宽需要指定)
  • 画笔(笔,笔的线条粗细,颜色,笔的方向等)

1.用到的函数

对于零基础的小伙伴,我来解释一下这里的模块与函数。turtle是一个python提供的模块,导入到我们自己的程序之后,我们就可以使用该模块内定义的函数和类啦。
函数就是方法,就是你做什么事,达到什么目标,以及怎么做的。
比如你想赋值,然后想输出。
a = 5
print(a)
我们还可以将上面两条语句放到函数里:
sendpix19.jpg
万一我还想打印b的值咋办呢
sendpix20.jpg
都是可以的。下面我们使用
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)的一个列表,循环四次。

sendpix18.jpg

如果我们要填充颜色,怎么写呢?
sendpix17.jpg

最后我们还隐藏了小乌龟。
那么问题来了,如果是画一个矩形,应该怎么画呢,长和宽不想等,请大家动手哦

画太阳花

sendpix5.jpg
这个也很简单啦
sendpix5-1.jpg
我们调整小乌龟的方向度数就可以实现啦,是不是很有意思。

看完帖子在看这篇博客,就简单啦
https://www.cnblogs.com/chen0307/articles/9645138.html

最后我们再去看看教程第一天的程序源代码,会更难一点,但中心思想不变的。
从现在开始你要锻炼你的逻辑思维啦,后面我还会再分析,今天就到这了

sendpix18.jpg

免费评分

参与人数 4吾爱币 +7 热心值 +3 收起 理由
黄明礼 + 1 我很赞同!
alittlebear + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Alex27933 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wuyangteam 发表于 2020-8-15 15:18
yoyoD 发表于 2020-8-15 15:10
之前学的python,长时间不碰都快忘干净了。。

哈哈,快跟着捡起来,等我们学完基础,开始玩点爬虫入门,再到数据分析,人工智能,浅尝,具体方向,小伙伴自己选择
南岸 发表于 2020-8-15 17:49
黄明礼 发表于 2020-8-15 18:12
在IDLE中点击Help ---> Turtle Demo里面有很多海龟示例



点击右下角的免费评分为我评个分吧
aa吴所谓 发表于 2020-8-15 18:52
学到了,建议下次直接发代码,不要发图片,比较懒,我的太阳花画出来和你的不太一样
 楼主| wuyangteam 发表于 2020-8-16 09:07
aa吴所谓 发表于 2020-8-15 18:52
学到了,建议下次直接发代码,不要发图片,比较懒,我的太阳花画出来和你的不太一样

,因为是新手教程,代码就几行,发图片就是为了让大家敲代码,哈哈。
以后会直接贴关键代码的,附上源码文件就可以了。感谢支持
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表