python——基本图形绘制(实例2:Python蟒蛇绘制)(模块1:turtle库的使
⽤)
前⾔
本篇主要介绍Python基本图形绘制,以Python蟒蛇绘制为例,介绍turtle库的使⽤。
并在最后对蟒蛇绘制的代码进⾏分析。
读完本篇,你将了解:
1.⽅法论
Python语⾔及海龟绘图体系
2.实践能⼒
python代码画图案
初步学会使⽤Python绘制简单图形
本篇将系统介绍:
1.实例2: Python蟒蛇绘制
2.模块1: turtle库的使⽤
3.turtle程序语法元素分析
引⼊:Python的特点与优势
-是C语⾔代码量的10%
-强制可读性(缩进)
-较少的底层语法元素
-多种编程⽅式
-⽀持中⽂字符
->13万第三⽅库
-快速增长的计算⽣态
-
避免重复造轮⼦
-开放共享
-跨操作系统平台
提⾼10倍的产出
⼀、实例2: Python蟒蛇绘制
1.问题分析
⽤程序绘制⼀条蟒蛇,设计蟒蛇的基本形状
问题1 计算机绘图是什么原理?
⼀段程序为何能够产⽣窗体?为何能在窗体上绘制图形?
问题2 Python蟒蛇绘制从哪⾥开始呢?
如何绘制⼀条线?如何绘制⼀个弧形?如何绘制⼀个蟒蛇?
乱世佳人第9集
2.代码实现
# PythonDrawSnake.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()
程序运⾏结果如下
3.简单分析
import是⼀个保留字,引⼊了当前代码之外的功能,引⼊了⼀个绘图库turtle(海龟)故称海龟库
4.举⼀反三
①Python语法元素理解
1)Python蟒蛇绘制共17⾏代码,但很多⾏类似
2)清楚理解这17⾏代码能够掌握Python基本绘图⽅法
3)参考框架结构、逐⾏分析、逐词理解
②程序参数的改变
1)Python蟒蛇的颜⾊∶⿊⾊、⽩⾊、七彩⾊…
2)Python啜蛇的长度:1节、3节、10节…
3)Python蟒蛇的⽅向∶向左⾛、斜着⾛…
③计算问题的扩展
1)Python蟒蛇绘制问题是各类图像绘制问题的代表
2)圆形绘制、五⾓星绘制、国旗绘制、机器猫绘制…
⼆、模块1: turtle库的使⽤
1.turtle库基本介绍
turtle(海龟)库是turtle绘图体系的Python实现
①turtle库概述
1)Python语⾔的标准库之⼀
2)⼊门级的图形绘制函数库
②标准库与第三⽅库
Python计算⽣态=标准库+第三⽅库
1)标准库:随解释器直接安装到操作系统中的功能模块
2)第三⽅库:需要经过安装才能使⽤的功能模块
nodejs适合做大项目吗
3)库Library、包Package、模块Module,统称模块
③turtle玩法
turtle(海龟)是⼀种真实的存在
有⼀只海龟,其实在窗体正中⼼,在画布上游⾛,⾛过的轨迹形成了绘制的图形
海龟由程序控制,可以变换颜⾊、改变宽度等
2.turtle绘图窗体布局meta viewport
①turtle的绘图窗体
1)绘制turtle图形⾸先需要⼀个绘图窗体,在操作系统上表现为⼀个窗⼝,它是turtle的⼀个画布空间
2)在窗⼝中使⽤的最⼩单位是像素。如:绘制⼀个100长的直线,是绘制⼀个100像素长的直线
3)在⼀个操作系统的电脑上,在电脑显⽰器中,左上⾓坐标系是(0,0),窗体左上⾓是turtle绘图窗体的坐标原点(startx,starty)
4)在屏幕坐标系中和窗体坐标系,它们之间存在⼀个窗体位置和⼤⼩的设计
②turtle.setup(width, height, startx, starty)
1)由于设置启动窗体的位置和⼤⼩
2)4个参数:宽度、⾼度、起始点xy⽅向的坐标。
其中,后两个参数可选
3)宽度、⾼度(窗体本⾝的宽度和⾼度)、起始点xy⽅向的坐标(窗体左上⾓的位置的坐标)。
左上⾓的位置的坐标:左上⾓位置相对于屏幕左上⾓的坐标
4)注意:在绘制基本图形的过程中,setup()不是必须的,只有当你需要控制窗体⼤⼩和在屏幕中显⽰位置的时候才⽤
5)举例:turtle.setup(800,400,0,0)
⽣成⼀个宽800⾼400的窗体,窗体左上⾓就在电脑屏幕的左上⾓
turtle.setup( 800,400)
由于未指定左上⾓在屏幕中的位置,系统默认该窗⼝在屏幕的正中⼼
3.turtle空间坐标体系
①绝对坐标
1)绝对坐标系构成:海龟最开始在画布正中⼼,坐标(0,0)。
海龟运⾏⽅向向着画布右侧,故整个窗体的右⽅向是x轴,上⽅向是y轴。
2)区分:图中点的坐标值指海龟绘制过程中画布中间的空间坐标体系。
其与窗体在屏幕中间的位置坐标不同
3)利⽤空间坐标,改变turtle的⾏进位置,可以使⽤⼀些函数
②绝对坐标相关函数:(x, y)
1)指让在任何位置的海龟去到达某⼀个坐标位置
2)举例:
③海龟坐标
1)海龟坐标系构成:海龟本⾝从⾃⾝的运动来讲,当前⾏进⽅向为前进⽅向,反⽅向是后退⽅向
左侧为左侧⽅向
2)相关函数:
turtle.fd(d):向海龟的正前⽅向运⾏
turtle.bk(d):向海龟的反⽅向运⾏
turtle.circle(r,angle):以海龟当前位置,左侧的某⼀个点为圆⼼,进⾏曲线运⾏
这些函数改变海龟在空间坐标中的位置,进⽽实现绘图功能
4.turtle⾓度坐标体系
①绝对⾓度:
1)绝对⾓度坐标体系:
空间坐标体系中的x轴表⽰0度或360度,y轴的正⽅向表⽰90度或-270度,以此类推
2)turtle.seth(angle):改变海龟的⾏进⾓度
注意:seth()并不在图像中绘制任何信息,只改变⾏进⽅向
angle为绝对度数
1)相关函数:
turtle.left(angle):向左改变运⾏⽅向
turtle.right(angle):向右改变运⾏⽅向
2)举例:绘制Z型曲线
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
从海龟起始画布中⼼,向左⽅向旋转45度,此时并未运动。让其在此⽅向上向前⾏进150像素,可绘制形成⼀个斜线。进⼀步让其向右侧旋转135度,再使⽤fd向前⾏进300像素。
再进⼀步,让其向左侧旋转135度,再使⽤fd向前⾏进150像素。则形成⼀个Z字
5.RGB⾊彩体系
①由三种颜⾊构成的万物⾊
1)RGB指红蓝绿三个通道的颜⾊组合
2)覆盖视⼒所能感知的所有颜⾊
3)RGB每⾊取值范围为0-255的整数或O-1之间的⼩数
②基础颜⾊
③除基础颜⾊外,可将每个通道的⾊彩进⾏修改
④注意:
turtle库默认采⽤RGB的⼩数值来表⽰颜⾊,可切换为整数值
⑤lormode( mode)
使⽤lormode( 1.0):RGB⼩数值模式
使⽤lormode( 255):RGB整数值模式
三、turtle程序语法元素分析
1.库引⽤与import保留字
①库引⽤:扩充Python程序功能的⽅式
1)使⽤import保留字完成库的引⽤,编写代码时采⽤ a.b编码风格,参考蟒蛇绘制代码,()
2)格式:
import<;库名>
<;库名>.<;函数名>(<;函数参数>)
以此调⽤相关功能
②import更多⽤法
使⽤from和import保留字共同完成
1)格式:
from<;库名> import<;函数名>
或**from<;库名> import ***
使⽤这种⽅式后,再调⽤函数,使⽤:<;函数名>(<;函数参数>),⽆需再加上库名
2)举例:
蟒蛇绘制代码改造
setup(650,350,200,200)
penup()
fd(-250)
pendown()
pensize(25)
计算机二级考试c语言程序设计题库
pencolor("purple")
seth(-40)
for i in range(4):
circle(40,80)
circle(-40,80)
circle(40,80/2)
fd(40)
计算机二级java含金量circle(16,180)
fd(40*2/3)
done()
③两种⽅法的⽐较(各有优缺点)
1) import<;库名>⽅式
<;库名>.<;函数名>(<;函数参数>):起来是新程序中的函数名
2)from<;库名> import<;函数名>
或**from<;库名> import ***
**<;函数名>(<;函数参数>):**使⽤库中的函数的这个函数名,在程序中就是独⽴的函数名3)带来的问题:第⼀种⽅法不会出现函数重名问题,第⼆种⽅法会出现
4)注意:如果程序很短,只使⽤这个库,也⽆⾃定义函数。可采⽤第⼆种
如果import了很多库,⼜担⼼名字冲突,则采⽤第⼀种
④其他⽅式
两种情况通盘考虑后,形成新的库引⽤⽅法,使⽤import和as保留字共同完成
1)结构:
import<;库名>as<;库别名>
<;库别名>.<;函数名>(<;函数参数>)
2)阐述:将库名形成了⼀个别名,简单说就是给库起个⼩名,⽤⼩名去调⽤函数
<;库别名>.<;函数名>也构成了⼀个程序中的独⽴名字
给调⽤的外部库关联⼀个更短、更适合⾃⼰的名字,对编写程序来说会带来很多的便利3)举例:
蟒蛇绘制代码改造
import turtle as t
t.setup(650,350,200,200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
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()
4)此种⽅式冗余的代码量最少,同时⼜防⽌了库重名的问题(推荐使⽤)
2.turtle画笔控制函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。