![5ee15abc3636be37d3a29bf147022fec.png](https://i-blog.csdnimg.cn/blog_migrate/15b60d562c96ea6ee9d46b0507d321e3.png)
本文为中国大学MOOC《Python语言程序设计》课程学习笔记,课程主讲:嵩天老师,练习平台:Python123
一、概述
在这个实例中,蕴含了使用Python进行基本图形绘制相关的许多基本知识点,对于初学者是很好的学习案例。
把每一行代码及其背后相关知识理解透彻,有助于我们打好Python基本功。
在理解了代码之后,还要反复的练习,多次从头到尾写这段代码,给自己计时,看能否不断缩短所用时间。这有助于我们加深对其理解,以及加深记忆。
import turtle as t
t.setup(800,300,200,200)
t.penup()
t.fd(-150)
t.pendown()
t.seth(-40)
t.pensize(25)
t.pencolor("purple")
for i in range(4):
t.circle(40,80)
t.circle(-40,80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40*2/3)
t.done()
二、代码解析
第1行 import turtle as t
- turtle库
- turtle库绘图体系:1969年诞生,主要用于程序设计入门
- 是Python语言的标准库之一
- 入门级的图形绘制函数库
- 什么是标准库?
- Python计算生态=标准库+第三方库
- 标准库:随解释器直接安装到操作系统中的功能模块
- 第三方库:需要经过安装才能使用的功能模块
- 库Library、包Package、模块Module,统称模块
- turtle的原理
- 有一只海龟,在窗体正中心,在画布上游走
- 走过的轨迹形成了绘制的图形
- 海龟由程序控制,可以变换颜色、改变宽度等
- 海龟默认在画布正中心(0,0),默认前行方向向右
- import
- 扩充Python程序功能的方式(引入库)
- 使用方式:import <库名>,如:import turtle
- 更多用法:import <库名> as<库别名>,如:import turtle as t,后续就可以用 t 代替 turtle,更加简洁方便(在代码中用t来替代了turtle,但为便于理解,下方涉及到turtle库时,将补全库名)
第2行
turtle.setup(800,300,200,200)
- turtle绘图窗体布局
- turtle的一个画布空间最小单位是像素
- turtle.setup(width,height,startx,starty)
->setup()设置窗体大小及位置
->4个参数中后两个可选
->setup()不是必须的
->turtle(800,400,0,0),则窗体宽度为800像素,高度为400,屏幕的左上角开始
->turtle(800,400),startx,starty,没有指定值,则在屏幕的正中心
第3行
turtle.penup()
- turtle画笔控制函数
- turtle.penup(),别名 turtle.pu(),抬起画笔,海龟在飞行;此时画笔在画布上空移动,画布上没有痕迹。
- turtle.pendown(),别名turtle.pd(),落下画笔,海龟在爬行;此时画笔在画布上移动,在画布上留下画笔的痕迹。
- turtle.pensize(width),别名 turtle.width(width),控制着画笔的宽度,可形象的理解为:海龟的腰围
- turtle.pencolor(color),color为颜色字符串或r,g,b值,画笔颜色,海龟在涂装
->颜色字符串:turtle.pencolor("purple")
->RGB的小数值:turtle.pencolor(0.63,0.13.0.94)
->RGB的元组值:turtle.pencolor((0.63,0.13.0.94))
第4行
turtle.fd(-150)
- turtle运动控制函数
- turtle运动控制函数控制海龟行进:走直线 or 走曲线
- turtle.forward(d) 别名:turtle.fd(d),向前行进,d:行进距离,可以为负数,如果为负数则是向相反方向前进
- turtle.circle(r,extent)
->根据半径r绘制extent角度的弧形
->r:默认圆心在海龟左侧r距离的位置
->extent:绘制角度,默认是360度整圆
->turtle.circle(40,80),以左侧40像素的点为圆心,40为半径,逆时针曲线移动80度
第6行
turtle.seth(-40)
- turtle方向控制函数
- turtle.setheading(angle),别名 turtle.seth(angle),angle是绝对坐标体系
- 只改变方向,不行进
- turtle.left(angle),以海龟的正前方为参考,向左转
- turtle.right(angle),以海龟的正前方为参考,向右转
- turtle空间坐标体系
1.绝对坐标
turtle.goto(x,y),画布窗体正中心坐标(0,0),遵循数学上的四象限坐标体系
![12ec12c4d16db0c595ebe62611000fff.png](https://i-blog.csdnimg.cn/blog_migrate/1498568d9b710d3e8aa70b89d5abb416.jpeg)
2.海龟坐标
turtle.bk(d),后侧
turtle.fd(d),前方
turtle.circle(r,extend),逆时针曲线运行
3.角度坐标
turtle.seth(angel)
turtle.left(angel)
turtle.right(angel)
![8e6e9a36e40c0dd63064849d238c53ce.png](https://i-blog.csdnimg.cn/blog_migrate/8094e042bdea1d33ae7f7637bd9c5863.jpeg)
第9行
for i in range(4):
- 基本循环语句
- for <变量> in range(<参数>):
<被循环执行的语句> - range()函数
range(N)产生0到N-1的整数序列,共N个,range(5) 代表0,1,2,3,4
rang(M,N),产生M到N-1的整数序列,共N-M个,range(2,5) 代表:2,3,4
三、总结
Python蟒蛇绘制共17行代码,但很多行类似,清楚理解这17行代码能够掌握Python基本绘图方法。
Python蟒蛇绘制问题是各类图像绘制问题的代表,比如:圆形绘制、五角星绘制、国旗绘制、机器猫绘制等。