第四章 python的turtle库的运用
我们可以尝试用python的自带turtle库绘制一条蟒蛇
首先我们设计一下蟒蛇的基本形状
我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码:
1 #PythonDraw.py
2 import turtle
3 turtle.setup(650, 350, 200, 200)
4 turtle.penup()
5 turtle.fd(-250)
6 turtle.pendown()
7 turtle.pensize(25)
8 turtle.pencolor("purple")
9 turtle.seth(-40)
10 for i in range(4):
11 turtle.circle(40, 80)
12 turtle.circle(-40, 80)
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()
程序关键:import保留字,引入了一个绘图体系,名字叫:turtle,就是海龟
学会海龟绘图体系之后,我们可以完成更加复杂的绘制:五角星绘制、国旗绘制、机器猫绘制
掌握了绘制一条线的方法,就可以绘制整个世界
turtle库概述:
turtle库的turtle绘图体系的python实现
turtle绘图体系:1969年诞生,主要用于程序设计入门
python的标准库之一,入门级的图形绘制函数库
python的计算生态:python标准库+第三方库
标准库:随解释器直接安装到操作系统的功能模块
第三方库:需要经过安装才能使用的功能模块
turtle的原理:
turtle是一种真实的存在,有一只海龟,在窗体的正中心,在画布上游走
走过的轨迹形成了绘制的图形
海龟由程序控制,可以变换颜色、改变宽度等
turtle的绘图窗体:
turtle的一个画布空间,最小单位是像素
turtle的绘图窗体:
turtle的绘图窗体:
1 turtle.setup(width, height, startx, starty)
注意三点:
1、setup设置船体的大小及位置
2、4个参数后两个参数可选
3、setup不是必须的
turtle空间坐标体系
绝对坐标:
1 turtle.goto(x,y)
这句是常用语法,让海龟爬
我们试试如下的代码,然后看看运行结果
1 import turtle
2 turtle.goto( 100, 100)
3 turtle.goto( 100,-100)
4 turtle.goto(-100,-100)
5 turtle.goto(-100, 100)
6 turtle.goto(0,0)
我们运行之后看看效果,如下图所示:
海龟的空间坐标体系
turtle.circle(r,angle),海龟左侧圆心,半径为r画圆
1 import turtle
2 turtle.circle(100,90)
3 turtle.done()
动手试试上述代码,会加深对circle函数的理解
下面我们了解一下海龟库的角度坐标体系
turtle.seth(angle)
1、seth() 改变乌龟行进方向
2、angle为绝对角度
3、seth只改变方向但不行进
海龟也有相对角度
1 turtle.left(angle)
2 turtle.right(angle)
我们来试试如下代码的绘制效果,来体会Turtle的角度体系
1 import turtle
2 turtle.left(45)
3 turtle.fd(150)
4 turtle.right(135)
5 turtle.fd(300)
6 turtle.left(135)
7 turtle.fd(150)
8 turtle.done()
绘制结果如下图所示:
下面我们涉及一下RGB色彩体系
万物色都可以由三种颜色构成
RGB指的是红绿蓝三个通道的颜色组合
覆盖视力所能感知的所有颜色
RGB每色取值范围是0-255或0-1小数
常用的RGB色彩:
英文名称 | RGB整数值 | RGB小数值 | 中文名称 |
white | 255,255,255 | 1,1,1 | 白色 |
yellow | 255,255,0 | 1,1,0 | 黄色 |
magenta | 255,0,255 | 1,0,1 | 洋红 |
cyan | 0,255,255 | 0,1,1 | 青色 |
blue | 0,0,255 | 0,0,1 | 蓝色 |
black | 0,0,0 | 0,0,0 | 黑色 |
seashell | 255,245,238 | 1,0.96,0.93 | 海贝色 |
gold | 255,215,0 | 1,0.84,0 | 金色 |
pink | 255,192,203 | 1,0.75,0.80 | 粉红色 |
brown | 165,42,42 | 0.65,0.16,0.16 | 棕色 |
purple | 160,32,240 | 0.63,0.13,0.94 | 紫色 |
tomato | 255,99,71 | 1,0.39,0.28 | 番茄色 |
turtle的RGB色彩模式
默认采用小数值,可以切换成整数值:
1 turtle.colormode(mode)
2 #1.0:RGB小数值模式
3 #255:RGB整数值模式
turtle程序语法元素分析:
库引用:
扩充python程序功能的方式
用import保留字完成,采用<a>.<b>()编码风格
import <库名>
<库名>.<函数名>(<函数参数>)
1 #PythonDraw.py
2 import turtle
3 turtle.setup(650, 350, 200, 200)
4 turtle.penup()
5 turtle.fd(-250)
6 turtle.pendown()
7 turtle.pensize(25)
8 turtle.pencolor("purple")
9 turtle.seth(-40)
10 for i in range(4):
11 turtle.circle(40, 80)
12 turtle.circle(-40, 80)
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()
可是,超级多的turtle,好烦,咋办????
import的更多用法:
使用from和import保留字共同完成
from <库名> import <函数名>
from <库名> import *
<函数名>(<函数参数>)
1 #PythonDraw.py
2 from turtle import *
3 setup(650, 350, 200, 200)
4 penup()
5 fd(-250)
6 pendown()
7 pensize(25)
8 pencolor("purple")
9 seth(-40)
10 for i in range(4):
11 circle(40, 80)
12 circle(-40, 80)
13 circle(40, 80/2)
14 fd(40)
15 circle(16, 180)
16 fd(40 * 2/3)
17 done()
这么好的方法咋不早说呢???
因为第一种方法不会出现函数重名问题,而第二种方法会出现函数重名问题
import的更多用法
使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
相当于给库起个简单的名字,如:狗娃
1 #PythonDraw.py
2 import turtle as t
3 t.setup(650, 350, 200, 200)
4 t.penup()
5 t.fd(-250)
6 t.pendown()
7 t.pensize(25)
8 t.pencolor("purple")
9 t.seth(-40)
10 for i in range(4):
11 t.circle(40, 80)
12 t.circle(-40, 80)
13 t.circle(40, 80/2)
14 t.fd(40)
15 t.circle(16, 180)
16 t.fd(40 * 2/3)
17 t.done()
这个方法比较推荐,也简洁了代码书写。
下面我们来分析下面这段代码的画笔控制函数
1 turtle.penup()
2 turtle.fd(-250)
3 turtle.pendown()
4 turtle.pensize(25)
5 turtle.pencolor("purple")
画笔操作后一直有效,一般成对出现
turtle.penup() #抬起画笔,海龟在飞 别名:turtle.pu()
turtle.pendown() #方向画笔,海龟在爬 别名:turtle.pd()
画笔设置后一直有效,直到下次重新设置
turtle.pensize(width) 别名:turtle.width(width)
画笔宽度,也就是海龟的腰围
turtle.pencolor(color) color为颜色字符串或者RGB值
画笔颜色,海龟在涂装
pencolor(color)中的color参与可以有三种形式
1、颜色字符串 :turtle.pencolor("purple")
2、RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
3、RGB的元组值:turtle.pencolor((0.63,0.13,0.94))
turtle的运动控制函数
控制海龟行进:走直线&走曲线
turtle.forward(d) 别名turtle.fd(d)
向前行进,海龟走直线
d:行进距离,可以为负数
turtle.circle(r,extend=None)
根据半径r绘制extend角度的弧形
r:默认圆心在海龟左侧r距离的位置
extent:绘制角度,默认360度整圆
方向控制函数
turtle.seth(45)
turtle.seth(-135)
控制海龟面对的方向:绝对角度和相对角度
turtle.left(angle) 海龟向左转
turtle.right(angle) 海龟向右转
angle:在海龟当前行进方向上旋转的角度
循环语句与range()函数
1 for i in range(4):
2 tirtle.circle(40,80)
3 tirtle.circle(-40,80)
按照一定次数循环执行一组语句
for <变量> in range(<次数>):
<被循环执行的语句>
<变量>表示每次循环的计数,0到<次数>-1
range()函数:产生循环计数序列
range(N) 产生0到N-1的整数序列,共N个
range(M,N)产生M到N-1的整数序列,共N-M个
第四章 python的turtle库的运用的更多相关文章
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- Python使用turtle库与random库绘制雪花
记录Python使用turtle库与random库绘制雪花,代码非常容易理解,画着玩玩还是可以的. 完整代码如下: 效果图如下:
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python之turtle库-小猪佩奇
Python之turtle库-小猪佩奇 #!/usr/bin/env python # coding: utf-8 # Python turtle库官方文档:https://docs.python.o ...
- 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表
(先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...
- Python中turtle库的使用
Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...
- python使用turtle库绘制奥运五环
效果图: #奥运五环 import turtle turtle.setup(1.0,1.0) #设置窗口大小 turtle.title("奥运五环") #蓝圆 turtle.pen ...
- Python:turtle库的使用及图形绘制
目录 一.绘制一个八边形 二.绘制一个八角图形 三.简述问题 四.循环程序设计 五.绘制一个自己喜欢的图形 一.绘制一个八边形 使用turtle库,绘制一个八边形 代码: from turtle im ...
随机推荐
- Windows登录服务器CLI运行脚本出现 syntax error: unexpected end of file 错误的解决
0.前言 通常我们在编辑 Linux 服务器上的文件时,直接在 Linux 环境比较麻烦(当然熟练使用 VIM 的程序员除外哈哈),有时我们会使用 Windows 将文件编辑好再上传到服务器端,我用的 ...
- 永远的ace 实验七 团队作业4—团队项目需求建模与系统设计(1)
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST/ 这个作业要求链接 https://www.cnblogs.com/nwnu-da ...
- 设计模式Copy-on-write
1.Copy-on-Write 又称COW,写时复制 String的replace()方法,没有修改内部的value数组,而是新创建了一个不可变对象 这种方法在解决不可变对象时,经常使用 这其实就是一 ...
- 用华为MindSpore进行分布式训练
技术背景 分布式和并行计算,在计算机领域是非常重要的概念.对于一些行外人来说,总觉得这是一些很简单的工作,但是如果我们纵观计算机的硬件发展史,从CPU到GPU,再到TPU和华为的昇腾(NPU),乃至当 ...
- java面试必知必会——排序
二.排序 时间复杂度分析 排序算法 平均时间复杂度 最好 最坏 空间复杂度 稳定性 冒泡 O(n²) O(n) O(n²) O(1) 稳定 选择 O(n²) O(n²) O(n²) O(1) 不稳定 ...
- P1123 取数游戏
题目描述 一个N \times MN×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻88个格子中的一个即认为这两个数字相邻),求取 ...
- 免费版对象存储【minIO】CentOS部署实践记录 2021
好久没写,记录一下 1.背景 之前一直用的七牛,不过是收费的,然后有些定制化需求,可能比较看重预算,然后就有了这篇开源方式:minio 2.简介 官方文档:http://docs.minio.org. ...
- CentOS安装ffmpeg+h264
CentOS安装ffmpeg+h264 前言 坑!坑!坑! 全是坑. 本文安装系统环境为CentOS7.2.我这里提供安装所需的四个源码包,均需要编译安装.所有组件最好都安装最新的稳定版,或者下载使用 ...
- React 并发功能体验-前端的并发模式已经到来。
React 是一个开源 JavaScript 库,开发人员使用它来创建基于 Web 和移动的应用程序,并且支持构建交互式用户界面和 UI 组件.React 是由 Facebook 软件工程师 Jord ...
- external-provisioner源码分析(2)-main方法与Leader选举分析
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 external-provisioner源码分析(2)-main方法与Leader选举分析 本 ...