Python基本图形绘制
1、深入理解Python语言
1.1 计算机技术的演进
时间 | 时代命名 | 主要解决问题 |
---|---|---|
1946-1981 | 计算机系统结构时代 | 计算能力问题 |
1981-2008 | 网络和视窗时代 | 交互问题 |
2008-2016 | 复杂信息系统时代 | 数据问题 |
2017- | 人工智能时代 | 人类的问题 |
1.2 不同编程语言解决不同问题
各类编程语言所处的历史时期和实名不同,Python是计算时代演进的选择。
编程语言 | 学习内容 | 语言本质 | 解决问题 | 适用对象 |
---|---|---|---|---|
C | 指针、内存、数据类型 | 理解计算机系统结构 | 性能 | 计算机专业 |
Java | 对象、跨平台、运行时 | 理解主客体关系 | 跨平台 | 软件类专业 |
C++ | 对象、多态、继承 | 理解主客体关系 | 大规模程序 | 计算机类专业 |
VB | 对象、按钮、文本框 | 理解交互关系 | 桌面应用 | 不确定 |
Python | 编程逻辑、第三方库 | 理解问题求解 | 各类问题 | 应所有专业 |
1.3 Python语言的特点
Python归Python,C归C。Python不需要掌握底层计算机运行原理。
工具决定思维:关注工具变革的力量
- 语法简单。代码量是C的10%,强制可读性,较少的底层语法元素,支持中文字符
- 生态高产。13万+的第三方库且在快速增长,避免重复造轮子,开放共享,跨操作系统平台。
1.4 “超级语言”的诞生
计算机语言的发展:
- 机器语言:二进制语言,CPU可直接执行,与具体CPU型号有关
11010010 00111011
- 汇编语言:将二进制代码直接对应助记符的编程语言,需要汇编器转换,与CPU型号有关
add 2,3,result
- 高级语言:更接近自然语言,同时更容易描述计算问题,编译后执行,与CPU型号无关
result = 2 + 3
- 超级语言:粘性整合已有程序,具备庞大计算生态,很容易利用已有代码功能,集成开发
result = sum(2+3)
2、turtle库的使用
2.1 turtle库的基本结介绍
turtle库是turtle绘图体系中Python实现,是Python语言的标准库之一。
Python的计算生态 = 标准库 + 第三方库
库Library、包Package、模块Module统称为模块。
turtle的原理:想象海龟是一种真实的存在,它有头有尾,在窗体的正中心,在画布上游走,走过的轨迹形成了绘制的图形。海龟由程序控制,可以变换颜色、改变宽度等
2.2 turtle绘图窗体布局
绘图窗体 指定是turtle的一个画布空间,最小单位是像素。
turtle.setup(width,height,startx,starty)
#setup()设置窗体大小及位置,后两个参数可选
2.3 turtle空间坐标体系
绝对坐标
窗体中心为原点,右侧为X轴,上方为y轴
turtle.goto(100,-100) #移动至(100.-100)
海龟(相对)坐标
海龟初始右侧为前进方向,上方为左侧方向的坐标体系。海龟可以转动方向,海龟的头部指向始终是前进方向。
turtle.fd(d) #前进d距离
turtle.bd(d) #后腿d距离
turtle.circle(r,angle) #以左侧r距离的点为圆心,r为半径,向前进方向画圆angle角度
2.4 turtle角度坐标体系
右侧x轴方向为0度或者360度,上方y轴方向为90度或者-270度。
turtle.seth(angle) #改变海龟前进方向,angle为绝对度数
turtle.left(angle) #向左转angle度数
turtle.right(right) #向右转angle度数
2.5 turtle色彩体系
RGB色彩模式,由三种颜色构成,指红蓝绿三个通道的颜色组合,每色取值范围0-255整数或者0-1小数。
色彩模式默认采用小数值,可切换为整数值
turtle.colormode(mode) #mode取值为1.0为小数模式,255为整数值模式
3、turtle语法元素分析
3.1库引用于import
import turtle #<a>.<b>()的编码风格
turtle.setup(600,300)
库引用是扩充Python程序功能的方式,使用import保留字完成,import <库名> <库名>.<函数名>(<函数参数>)
可使用from和import保留字共同完成
from turtle = import * #引用turtle库时不需要加入库名,但容易出现重复函数名
setup(600,300)
import turtle as t #t
t.setup(600,300)
3.2画笔控制函数
画笔操作后一直有效,一般成对儿出现
turtle.penup() #别名 tutle.up() 抬起画笔,类比海龟在飞行,不会留下痕迹,但海龟位置可以移动
turtle.pendown() #别名 turtle.pd() 落下画笔,海龟在爬行
画笔设置后一直有效,知道下次重新设置
turtle.pensize(width) #别名 turtle.width(width) 设置画笔宽度,海龟的腰围
turtle.pencolor(color) #color为颜色字符串或者rgb值,设置画笔颜色,海龟在涂色
3.3 turtle运动控制函数
控制海龟行进:走直线&走曲线
turtle.forward(d) #别名 turtle.fd(d) 向前行进,海龟走直线,其中d为行进距离,可以为负数
turtle.circle(r,extent=None) #根据半径r绘制extend角度的弧形,r默认圆心在海龟左侧距离r的位置,extend是绘制角度,默认是360整圆
3.4 方向控制函数
控制海龟面对方向:绝对角度& 海龟角度
turtle.setheading(angle) #别名turtle.seth(angle)改变行进方向,海龟走角度
turtle.left(angle) #海龟从当前方向向左转angle度
turtle.right(angle) #海龟从当前方向向右转angle度
3.5 循环语句与range()函数
循环语句是按照一定次数循环执行一组语句
for i in range(4):
#rang(N) 产生0到N-1的整数序列,共N个
#range(M,N) 产生M到N-1的整数序列,共N-M个