python基本图形绘制
本节课将通过一个蟒蛇绘制实例来学习:深入理解python语言,python蟒蛇绘制
深入理解python语言
不同语言有不同的设计初心
python语言的特点: 通用,脚本语言,开源语言,跨平台语言,多模型语言,语法简洁,生态高产
“超级语言”诞生记:
机器语言:代码直接执行,与CPU型号有关
汇编语言:有助记符,汇编器,与CPU型号有关
高级语言:接近自然语言,编译器,与CPU型号无关
超级语言:粘性整合已有程序,具备庞大计算生态(python)
python蟒蛇绘制
问题分析
- 计算机绘图原理是什么?
- python蟒蛇绘制从哪里开始呢?
python蟒蛇绘制实例
#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库的使用
turtle(海龟)库是turtle绘图体系的python实现,主要用于程序设计入门,是python标准库之一,是入门级的图形绘制函数库。
python计算生态 = 标准库 + 第三方库
标准库:随解释器安装到操作系统中的功能模块
第三方库:需要经过安装才能使用的功能模块
库Library、包Package、模块Module,统称模块
turtle绘制窗体布局:
- setup()设置窗体大小及位置,参数依次是宽度,高度,起始点的xy方向,后两个是可选的,默认是在屏幕正中
turtle.setup(width,height,startx,starty)
-
turtle空间坐标系
绝对坐标:turtle.goto(x, y)
海龟坐标:turtle.fd(d)指的是向海龟的正前方运行、turtle.bk(d)向海龟的反方向运行、turtle.circle(r,angle)以海龟当前位置左侧的某一点为圆心进行曲线运动 -
turtle的角度坐标体系
turtle.seth(angle):改变当前海龟进行方向,seth不绘制任何图像,只改变方向但不行进,angle为绝对度数。turtle.left(angle)和turtle.right(angle),向左或向右。
下面我们通过绘制一个“Z型”曲线来理解这些函数:
import turtle
turtle.left(45) #方向为向左45°
turtle.fd(150) #向前行进150个像素
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
- RGB色彩体系
指红绿蓝三种颜色通道,每种颜色取值在0~255,turtle库默认使用rgb小数值,可以切换成整数值:turtle.colormode(mode),若mode = 1.0,则使用如果不小数值模式,若mode = 255,则使用rgb整数值模式
turtle程序语法元素分析
库引用和import
库引用:扩充python程序功能的方式
-
使用import保留字来完成,采用< a>.< b>()编码风格
具体方法:import <库名>
<库名>.<函数名>(<函数参数>) -
from <库名> import <函数名>
from <库名> import *
具体方法:<函数名>(<函数参数>)
比较:第一种不会出现函数重名的问题,第二种会
- 使用import和as保留字共同完成:import <库名> as <库别名>
具体方法:<库别名>.<函数名>(<函数参数>)
给调用的外部库关联一个更短、更适合自己的名字
turtle画笔控制函数
画笔操作后一直有效,一般成对出现
- turtle.penup() 别名 turtle.pu() 画笔抬起
- turtle.pendown() 别名 turtle.pd() 画笔落下
- turtle.pensize(width) 别名 turtle.width(width) 画笔宽度
- turtle.pencolor(color) 修改画笔颜色,color参数有三种表达式:颜色字符串,rgb小数值,rgb整数值
在绘制中先让画笔起飞到指定位置,然后落下,设置画笔大小和颜色,开始绘制
turtle运动控制函数
控制海龟行进:走直线&走曲线
- turtle.forward(d) 别名 turtle.fd(d) 向前行进,海龟走直线 d:行进距离,可以为负数,单位是像素
- turtle.circle(r,extent = None) 根据半径r 绘制extent角度的弧形,圆心默认在海龟左侧r距离的位置上
turtle方向控制函数
控制海龟面对方向:绝对角度&海龟角度
- turtle.setheading(angle) 别名 turtle.seth(angle) 改变行进方向,海龟走角度,绝对角度。例:当angle为45时,海龟方向由原点变成坐标系中的45°
- turtle.left(angle) 海龟向左转 turtle.right(angle) 海龟向右转
angle:在海龟当前行进方向上旋转的角度
方向改变函数只改变海龟的行进方向,如果需要运动,需要使用运动控制函数,让海龟走直线或者曲线
循环语句
按照一定次数循环执行一组语句
for <变量> in range(<参数>):
<被循环执行的语句>
range()函数:产生循环计数序列,有两种常用方法:
- range(N):产生到N-1的整数序列,共N个
- range(M,N):产生从M到N-1的整数序列,共N-M个
python蟒蛇绘制实例分析
#pythondraw.py
import turtle #导入turtle库
turtle.setup(650,350,200,200) #使用setup函数设定一个窗口,窗体大小是高650像素,宽350像素,位置左上角坐标是(200,200)
turtle.penup() #将画笔抬起
turtle.fd(-250) #让海龟倒退向后行进250个像素
turtle.pendown() #将海龟落下
turtle.pensize(25) #调整画笔大小为25个像素
turtle.pencolor("purple") #设置画笔颜色为purple
turtle.seth(-40) #将海龟方向改为绝对-40°方向
for i in range(4): #使用循环使蟒蛇走曲线
turtle.circle(40,80) #使用40像素为半径绘制80度的弧度
turtle.circle(-40,80) #以反向40度为半径绘制80度
turtle.circle(40, 80/2) #按照40像素的半径40度的方式绘制少半个弧形
turtle.fd(40)
turtle.circle(16,180) #继续使用半圆绘制头部
turtle.fd(40 * 2/3) #使用继续向前进的一个直线
turtle.done() #done函数,程序运行之后不会自动退出