【python系列】第二章 Python基本图形绘制

*该系列内容来自于:中国大学MOOC(幕客)-python语言程序设计

Python语言程序设计_北京理工大学_中国大学MOOC(慕课)

第二章   Python基本图形绘制

方法论:python语言及海龟绘图体系

实践能力:初步学会使用python绘制简单图形

2.1  深入理解Python语言

2.1.1  计算机技术的严谨

1、计算机技术演进过程

①计算机系统结构时代(35年):1946-1981   计算能力问题  C

②网络和视窗时代(27年):1981-2008   交互问题   JAVA VB

2008年 安卓操作系统诞生  

③复杂信息系统时代(8年) :2008-2016   数据问题  PYTHON

云计算、网络安全、大数据 

2017年5月27日,柯洁最终 0:3 AlphaGo

~~~新计算时代

④人工智能时代:2017-    人类的问题

2.1.2  编程语言的多样性

1、不同变成语言初心和适用对象

①C

学习内容:指针、内存、数据结构

语言本质:理解计算机系统结构

解决问题:性能

适用对象:计算机类专业

②Java

学习内容:对象、跨平台、运行时

语言本质:理解主客体关系

解决问题:跨平台

适用对象:软件类专业

③C++

学习对象:对象、多态、继承

语言本质:理解主客体关系

解决问题:大规模程序

适用对象:计算机类专业

④VB

学习对象:对象、按钮、文本框

语言本质:理解交互逻辑(人机)

解决问题:桌面应用

适用对象:不确定

⑤python

学习对象:编程逻辑、第三方库

语言本质:理解问题求解

解决问题:各类问题

适用对象:所有专业

2、2018年后的计算环境:

①计算机性能不再是解决一般问题的瓶颈

②移动互联网广泛普及

③大数据、云计算、物联网、信息安全、人工智能等需求爆发

2.1.3  python语言的特点

1、python语言:

通用语言、脚本语言、开源语言、跨平台语言、多模型语言

2、特点与优势

【语法简洁】10x

①强制可读性

②较少的底层语法元素

③多种编程方式

④支持中文字符

⑤C代码量的10%

【生态高产】10x

⑥快速增长的计算生态

⑦避免重复造轮子

⑧开放共享

⑨跨操作系统平台

⑩13万第三方库

3、如何看待python语言

-C/C++:底层、内存、接口~C  python调用,不用跟内存打交道(python归python,C归C)

-Java:针对特定开发和岗位需求

-html/css/js:不可替代的前端技术,全栈能力

-其他语言:R/Go/Matlab等,特定领域

-python:

是最高产的程序设计语言

掌握抽象并求解计算问题综合能力的语言

了解产业界解决复杂计算问题方法的语言

享受利用编程将创新变为实现乐趣的语言

工具决定思维:关注工具变革的力量

2.1.4  “超级语言”的诞生

1、编程语言的种类

①机器语言:

-一种二进制语言,直接使用二进制代码表达指令

-计算机硬件(CPU)可以直接执行,与具体CPU型号有关

-完成2+3功能额机器语言  11010010  00111011

②汇编语言:

-一种将二进制代码直接对应助记符的编程语言

-汇编语言与CPU型号有关,程序不通过,需要汇编器转换

-完成2+3功能的汇编语言  add 2,3,result

③高级语言:

-更接近自然语言,同时更容易描述计算问题

-高级语言代码与具体CPU型号无关,编译后运行

-完成2+3功能的高级语言 result=2+3

④超级语言:

-粘性整合已有程序,具备庞大计算生态,可以很容易利用已有代码功能

-编程思维不再是刀耕火种,而是集成开发

-完成2+3功能的高级语言   result=sum(2+3)

python是唯一的超级语言,前进的步伐不可阻挡

2.2  实例2:Python蟒蛇绘制

1、python蟒蛇绘制

①设计蟒蛇的基本形状

问题1:计算机绘图是什么原理?一段程序为何能够产生窗体?为何能在窗体上绘制图形?

问题2:python蟒蛇绘制从哪里入手?如何绘制一条线?一个弧形?一个蟒蛇?

2、举一反三

①程序参数的改变:

-颜色:

-长度:

-方向:

②计算问题的拓展:

-圆形、五角星、国旗、机器猫绘制

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

2.3  模块1:turtle库的使用

2.3.1  turtle库基本介绍

1、turtle(海龟)库是turtle绘图体系的python实现

-turtle体系:1969年诞生,用于程序设计入门

-python语言标准库之一

-入门级的图形绘制函数库

2、标准库

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

-标准库:随解释器直接安装到操作系统中的功能模块

-第三方库:需要经过安装才能使用的功能模块

-库Library、包Package、模块Module,统称模块

3、turtle的原理

-turtle是一种真实的存在

-有一只海龟,其实再窗体正中心,在画布上游走

-走过的轨迹形成了绘制的图形

-海龟由程序控制,可以变换颜色、改变宽度等

2.3.2  turtle绘图窗体布局

turtle的画布空间,最小单位是像素

turtle.setup(width,height,startx,starty)

-setup()设置窗体大小及位置

-4个参数中后两个可选

-setup()并不是必须的

-例题:turtle.setup(800,400,0,0)

窗体宽度800,高度400,窗体左上角在电脑屏幕左上角

turtle.setup(800,400)  窗口在屏幕的正中心

2.2.3  turtle空间坐标体系

1、绝对坐标

坐标原点(0,0)在窗体正中央,右方向是x轴,上方向是y轴。数学意义上的空间坐标

2、goto():让无论在任何位置的海龟到达改坐标位置

turtle.goto(x,y) 

3、海龟坐标

-海龟前进方向,无论朝向哪个方向,都叫前进方向

-反方向是后退方向

-运行的左侧叫做左侧方向,右侧叫做右侧方向

4、控制海龟的函数

turtle.circle(r,angle) 以海龟左侧的某一个点为圆心,进行曲线运行

turtle.fd(d)  指的是向海龟的正前方向运行

turtle.bk(d) 向海龟反方向运行

2.3.4  turtle角度坐标体系

1、绝对角度:x轴正方向:0/360度   反方向:180/-180度    y轴正方向:90/-270度  反方向:270/-90度

2、seth()

turtle.seth(angle)

-seth()改变海龟行进方向

-seth()只改变方向但不行进

-angle为绝对度数

例:turtle.seth(45) 海龟朝向45度

3、海龟角度:

turtle.left(angle)、turtle.right(angle)

分别让当前海龟向左或者向右去改变运行方向

2.3.5  RGB色彩体系

1、RGB色彩模式:

由三种颜色构成的万物色

-指红蓝绿三个通道的颜色组合

-覆盖视力所能感知的所有颜色

-RGB没色取值范围0-255整数或0-1小数

2、常用RGB色彩:颜色  RGB整数值   RGB小数值

白色:255,255,255   1,1,1

3、turtle的RGB色彩模式

默认采用小数值,可切换为整数值

4、turtle.colormode(mode)

-1.0:RGB小数值模式

-255:RGB整数值模式

2.4  turtle程序语法元素分析

2.4.1 库引用与import

1、import:扩充Python程序功能的方式

-使用import保留字完成,采用<a>.<b>()编码风格

import<库名>

<库名>.<函数名>(<函数参数>)

2、import更多用法

使用from和import保留字共同完成

from <库名> import <函数名>

from<库名>import *

<函数名>(<函数参数>)

import turtle

turtle.setup(650,350,200,200)   #turtle.setup(width,height,startx,starty)

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()

from turtle import *

setup(650,350,200,200)

penup()

fd(-250)

pensize(25)

.......

done()

3、两种方法比较

import <库名>

<库名>.<函数名>(<函数参数>)

不会出现函数重名问题

from <库名> import <函数名>

from <库名> import *

<函数名>(<函数参数>)

会有函数重名

4、使用import和as保留字共同完成

import <库名> as <库别名>

<库别名>.<函数名>(<函数参数>)

import turtle as t

t.setup(650,350,200,200)

t.penup()

t.fd(-250)

t.pendone()

.......

t.done()

2.4.2 turtle画笔控制函数

1、turtle画笔控制函数:

penup()     pendown()

pensize()   pencolor()

画笔操作后一直有效,一般成对出现

-turtle.penup()    别名     turtle.pu()   抬起画笔,海龟在飞行

-turtle.pendown()  别名  turtle.pd()    落下画笔,海龟在爬行

画笔设置后一直有效,直至下次重新设置

-turtle.pensize(width)  别名  turtle.width(width)   画笔宽度,海龟的腰围

-turtle.pencolor(color)  color为颜色字符串或rgb值   画笔颜色,海龟在涂装

2、color参数的三种形式

①颜色字符串:("purple")

②RGB小数值:(0.63,0.13,0.94)

③RGB元组值:((0.63,0.13,0.94))

2.4.3 turtle运动控制函数——改变路径

1、控制海龟走直线&走曲线

-turtle.forward(d)   别名  turtle.fd(d)   向前行进,海龟走直线   d:行进距离,可以为负数

-turtle.circle(r,extent=None)  根据半径r绘制extent角度的弧形  r:半径   extent:绘制角度,默认360

2.4.4 turtle方向控制函数——只改变海龟行进方向

控制海龟面对方向:绝对角度&海龟角度

绝对:-turtle.setheading(angle)    别名  turtle.seth(angle)  改变行进方向,海龟走角度

-angle:改变行进方向,海龟走角度

海龟:-turtle.left(angle)  海龟向左转

-turtle.right(angle) 海龟向右转

-angle:在海龟当前行进方向上旋转的角度

2.4.5 基本循环语句

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

for <变量>  in  range(<参数>)

      <被循环执行的语句>

for i in range(5):

     print(i)

0

1

2

3

4

for i in range(5):

      print("Hello:",i)  

Hello: 0  %Hello 冒号和数字之间有了空格,print中间加","的作用

Hello: 1

Hello: 2

Hello: 3

Hello: 4

range()函数  跟for、in搭配形成计数循环

产生循环计数序列

-range(N)  :产生0到N-1的整数序列,共N个

-range(M,N):产生M到N-1的整数序列,共N-M个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值