您当前的位置: 首页 >  Python
  • 6浏览

    0关注

    28博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【2-Python基本图形绘制】嵩天《Python语言程序设计》

我愚蠢的理想主义_Cheergo 发布时间:2022-02-02 01:57:31 ,浏览量:6

 目录

一、深入理解Python语言

1、计算机技术的演进过程

2、五种编程语言的设计初心(C、Java、C++、VB、Python)

3、Python语言特点(通用性、简洁性、生态性)

4、编程语言种类的发展(机器语言、汇编语言、高级语言、超级语言)

二、实例2:Python蟒蛇绘制

举一反三

三、模块1:turtle库的使用

1、turtle库基本介绍

2、turtle绘图窗体布局

3、turtle空间坐标体系

4、turtle 角度坐标体系

​5、RGB色彩体系

四、turtle程序语法元素分析

1、库引用与import

2、turtle画笔控制函数

3、turtle运动控制函数

4、turtle方向控制函数

5、基本循环语句与 range() 函数

6、“Python蟒蛇绘制代码”分析

五、单元小结

 

一、深入理解Python语言

1、计算机技术的演进过程
  • 1946-1981  计算机系统结构时代(35年)    计算能力问题(通过计算设备来提供更充分、充足、好用的计算能力)
  • 1981-2008  网络和视窗时代(27年) 人与计算机的交互问题(操作系统视窗),以及计算机与计算机的交互问题(网络)
  • 2008-2016  复杂信息系统时代(8年) 各种信息化系统在各种维度上进行整合,数据相关问题(数据接口、数据产生速度、数据存储等等)
  • 过渡时期:新计算时代 关心计算、交互、数据、人工智能。计算需求以爆炸形式发展,计算机技术呈指数形式发展
  • 2017-         人工智能时代 机器会接管很多基础的数据处理问题和基础功能性问题,要关心人类自身的问题(计算机帮助人类解决这希望达到的功能效果)
2、五种编程语言的设计初心(C、Java、C++、VB、Python)
  • C语言:诞生于计算机系统结构时代,用于写操作系统,适合做计算机底层程序的设计和开发
  • Java语言:诞生于网络和视窗时代,面向对象,解决跨平台问题,代码复用更加灵活
  • C++语言:既是C语言的演进,又具有面向对象的特点
  • VB语言及其衍生的.NET语言:诞生于网络和视窗时代,实现小的桌面窗口,人机交互
  • Python语言:发展于复杂信息系统时代,面向编程逻辑,使用第三方库。是计算机时代演进的一种选择

3、Python语言特点(通用性、简洁性、生态性)

通用语言(适用于普适的计算问题求解的开发)、脚本语言、开源语言、跨平台语言、多模型语言

Python语法:

  • 强制可读性(缩进)
  • 较少的底层语法元素:不去操作内存和低级接口
  • 支持多种编程方式
  • 支持中文字符处理
  • 语法简洁,C语言代码量的10%
  • 生态高产,13万的第三方库,开源开放,快速增长的计算生态,避免重复造轮子,跨操作系统平台

 

4、编程语言种类的发展(机器语言、汇编语言、高级语言、超级语言)

(1)机器语言:

  • 一种二进制语言,直接使用二进制代码表达指令
  • 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  • 如完成2+3,机器语言表达的是一串01代码,至于这串01代码可以在哪一款CPU上怎样执行、执行结果怎样表达,需要参考每一款CPU的参考手册

(2)汇编语言:

  • 将二进制代码直接对应为助记符,利用助记符开展程序设计
  • 由于与二进制代码及机器语言一一对应,也与具体的CPU型号有关(在某一款CPU上编写的程序无法在其他CPU上运行)
  • 如完成2+3,可能为add 2,3,result,它表示的是将第一个参数2与第二个参数3相加,存到result里,这种add操作符在前、操作数在后的形式,是一种典型的CPU的指令格式形式

前两者不适合编程,适合计算机底层硬件的设计和开发

(3)高级语言:

  • 更接近自然语言,同时更容易描述计算问题
  • 高级语言代码与具体CPU型号无关,编译后运行(编译器将高级语言编写的源代码编译成计算机能够执行的目标代码,在编译的过程中,编译器参考某一款CPU的具体型号)
  • 如完成2+3,result=2+3,即将2+3运算的值赋值给result

第三类即不按照计算机指令格式设计的方式来编写,而用一种人类更友好的方式来编写程序

(4)超级语言:

  • 具有庞大计算生态,可以很容易利用已有代码功能
  • 编程思维不再是刀耕火种,而是集成开发
  • 如完成2+3,result=sum(2,3),只需要将参数给到一个函数里,由函数返回结果。函数可以是自己写的,也可以是别人的生态库
  • Python是目前世界上具有最庞大生态的语言,唯一的超级语言

第四类即复用别人写好的代码,利用已有的功能模块完成未知的功能模块

二、实例2:Python蟒蛇绘制
  • 使用 IDLE 的文件方式编写代码,并保存为 PythonDraw.py 文件
  • IDLE 打开文件,按 F5 运行
#PythonDraw.py
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40, 80)
    turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()

import 是一个保留字,引入了一个绘图库叫 turtle

举一反三

(1)程序参数的改变:

  • Python 蟒蛇的颜色:黑色、白色、七彩色...
  • Python 蟒蛇的长度:1节、3节、10节...
  • Python 蟒蛇的方向:向左走、斜着走...

(2)计算问题的扩展:

  • 掌握绘制一条线的方法,就可以掌握各类图像绘制问题
  • 图形绘制、五角星绘制、国旗绘制、机器猫绘制...
三、模块1:turtle库的使用
  • turtle库的海龟绘图法
  • turtle.setup() 函数调整绘图窗体在电脑屏幕中的布局
  • 画布上以中心为原点的空间坐标系:绝对坐标、海龟坐标
  • 画布上以空间x轴为0度的角度坐标系:绝对角度、海龟角度(其中海龟坐标、海龟角度都是以海龟当前位置和朝向为准来设计的)
  • RGB色彩体系:使用 0-255之间的整数值 或 0-1之间的小数值 来表示色彩,色彩模式之间可切换
1、turtle库基本介绍

turtle(海龟)库是turtle绘图体系的Python实现,是Python的标准库之一,是入门级的图形绘制函数库

Python计算生态 = 标准库 + 第三方库

  • 标准库:随解释器直接安装到操作系统中的功能模块
  • 第三方库:需要经过安装才能使用的功能模块
  • 库 Library、包 Package、模块 Module,统称模块

原理:有一只海龟,其实在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形(海龟由程序控制,可以变换颜色、改变宽度等)

2、turtle绘图窗体布局

绘图窗体(在操作系统上表现为一个窗口)——turtle的一个画布空间

在窗口中使用的最小单位是像素,如绘制100长的直线,指的是100像素长的直线

  • 屏幕坐标系:左上角(0,0)
  • 窗体坐标系:左上角为turtle绘图窗体的坐标原点(startx,starty)

turtle.setup(width,height,startx,starty) 函数:设置启动窗体的位置和大小,有四个参数:宽度,高度(窗体本身的宽度和高度),起始点的x、y方向的坐标(窗体左上角位置的坐标:窗体左上角位置相对屏幕左上角的坐标),其中后两个参数是可选的(不指定的话默认该窗口在屏幕的正中心)。该函数不是必须的,只有当需要控制窗体的大小和在屏幕中显示的位置时,才需要使用

3、turtle空间坐标体系

在turtle窗体内部,形成了一个空间坐标体系,包含绝对坐标和海龟坐标两种

  • 绝对坐标:turtle(海龟)最开始在画布的正中心,正中心坐标为(0,0)                   海龟的运行方向向着画布的右侧(整个窗体的右方向是x轴,上方向是y轴) 利用空间坐标,改变turtle的行进位置。可以使用一些函数,如 turtle.goto(x,y)  让任何位置的海龟去到达某一个坐标位置(x,y)  
  • 海龟坐标:海龟从它自身的运动来讲,它看到的世界是什么样子。对于海龟来讲,它的当前行进方向,无论这个方向是朝向哪个角度,它都叫前进方向;反方向是后退方向;海龟运行的左侧叫左侧方向,右侧叫右侧方向 使用一些控制海龟的函数,如 turtle.fd(d) 指的是向海龟的正前方向运行,turtle.bk(d) 指的是向海龟的反方向运行,turtle.circle(r,range) 指的是以海龟当前位置左侧的某个点为圆心,进行曲线运行
4、turtle 角度坐标体系

在空间坐标体系中,运行方向也有一个绝对角度:在空间坐标体系中的 x 轴表示0度或360度,y轴的正方向表示90度或-270度,x轴负方向表示180度或-180度,y轴负方向表示270度或-90度,以此形成了绝对角度的坐标体系

turtle.seth(angle) 函数改变当前海龟的行进角度,它并不在图像中绘制任何信息,只改变行进方向,其中参数 angle 为绝对度数。如果在这样的方位中进一步使用 turtle.fd() ,让海龟继续向前运行,它会朝着当前设定的方向直线运行

 此外,为了更好地改变海龟的运行方向,从海龟坐标的角度,对于海龟运行的一个方向,可以使用左右的方式来改变它的运行角度。提供了 turtle.left(angle) 和 turtle.right(angle) 分别让当前的海龟向左或向右去改变运行方向

5、RGB色彩体系

RGB由三种颜色构成了万物色(红绿蓝三个通道的颜色组合,每个通道的取值范围是0-255的整数或0-1的小数),可以覆盖视力所能感知的所有颜色

turtle库默认采用RGB的小数值来表示颜色,也可以切换使用整数值来表示颜色

turtle.colormode(mode) 改变色彩数值的使用

  • mode 为 1.0 时,在之后修改颜色时,需要使用RGB小数值
  • mode 为 255 时,在之后修改颜色时,需要使用RGB整数值
四、turtle程序语法元素分析 1、库引用与import

库引用:扩充Python程序功能的方式

  • 使用 import 保留字完成,采用 .() 的编码风格
    import 
    .()
  • 使用 from 和 import 两个保留字共同完成对库的引用,在调用函数的过程中就不需要再加      .  的形式
    from  import 
    from  import *
    ()
    两种方式比较:
  • 使用 import 和 as 保留字共同完成:给调用的外部库关联一个更短、更适合自己的名字,这种方式冗余代码最少,同时又防止了库重名的问题
    import  as 
    .()

2、turtle画笔控制函数

蟒蛇案例中使用的:

把海龟想象为画笔,画笔操作后一直有效(画笔控制函数设置后一直有效,直至下次重新设置),一般成对出现

  • turtle.penup()     别名 turtle.pu()      抬起画笔,相当于海龟在飞行。画笔抬起的时候,画笔或海龟运行的轨迹不在画布上形成图案
  • turtle.pendown()     别名 turtle.pd() 落下画笔,相当于海龟在爬行。一般来讲需要 penup 让海龟飞到某一个位置,再 pendown,再从那个位置开始绘图
  • turtle.pensize(width)    别名 turtle.width(width) 设置画笔宽度,相当于海龟的腰围
  • turtle.pencolor(color)   修改画笔颜色,color 为颜色字符串(小写,如:"purple")或 RGB 的三个通道值(小数值或元组值:小数值直接用逗号分隔;元组值指的是将小数值或整数值形成一个独立的元素,外围加括号形成元组类型)

 打好画笔的基础,掌握以下四个函数的基本使用:

  • penup()
  • pendown()
  • pensize()
  • pencolor(colorstring)、pencolor(r,g,b)、pencolor((r,g,b))
3、turtle运动控制函数

蟒蛇案例中使用的:

 控制海龟行进方向:走直线 fd() 或 走曲线 circle()

  • turtle.forward(d)    别名 turtle.fd(d) 向前行进,即海龟走直线。参数 d 表示行进距离(单位为像素),可以为负数(倒退行进) 画笔设置后一直有效,直至下次重新设置
  • turtle.circle( r,extent=None ) 根据半径r绘制extent角度的弧形 r:默认圆心在海龟左侧r距离的位置,r为负数时,半径就在其右侧r距离的位置。r为海龟行进曲线的半径 extent:绘制角度,默认是360度整圆

4、turtle方向控制函数

蟒蛇案例中使用的:

控制海龟面对的方向,包含绝对角度和海龟角度

方向控制函数只改变海龟的行进方向,并不实际在绘图上让海龟行动。如果希望海龟行动,需要使用运动控制函数让海龟走直线或走曲线

  • turtle.setheading(angle)     别名 turtle.seth(angle) 改变行进方向,让海龟转向,参数angle指的是将海龟当前方向改变为某一绝对角度
  • 除了绝对角度,turtle提供了在海龟视角下转向的方法,分别使用函数turtle.left(angle)       海龟向左转turtle.right(angle)     海龟向右转 参数angle指的是在左转或右转的方向上旋转的角度
5、基本循环语句与 range() 函数

蟒蛇案例中使用的:

循环语句:按照一定次数循环执行一组语句

for  in range()    # 表示每次循环的计数,0到-1
    

print() 的逗号输出:print() 输出函数中有一种输出方法,是将你输出的各种信息中间用逗号分隔。输出之后,每输出的字符串之间会增加空格

在Hello字符串中没有空格,i也没有空格, 但是输入之后Hello冒号和数字之间有了一个空格, 这就是 print中间加逗号的作用

 range() 函数是一个产生循环计数序列的函数,它有两种常用用法:

  • range(N)   产生0到N-1的整数序列,共N个,如 range(5) 产生 0,1,2,3,4 五个数
  • range(M,N)   产生M到N-1的整数序列,共N-M个,如range(2,5) 产生 2,3,4 三个数
  • 最主要的作用:与 for in 搭配产生 range 循环
6、“Python蟒蛇绘制代码”分析

(1)准备工作

(2)循环,形成Python蟒蛇的关节

(3)Python蟒蛇的脖子部分

(4)Python蟒蛇的头部

五、单元小结

关注
打赏
1662226828
查看更多评论
立即登录/注册

微信扫码登录

0.0372s