我们可以尝试用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库的运用的更多相关文章

  1. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  2. [Python笔记][第四章Python正则表达式]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...

  3. Python使用turtle库与random库绘制雪花

    记录Python使用turtle库与random库绘制雪花,代码非常容易理解,画着玩玩还是可以的. 完整代码如下:   效果图如下:  

  4. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  5. Python之turtle库-小猪佩奇

    Python之turtle库-小猪佩奇 #!/usr/bin/env python # coding: utf-8 # Python turtle库官方文档:https://docs.python.o ...

  6. 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表

    (先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...

  7. Python中turtle库的使用

    Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...

  8. python使用turtle库绘制奥运五环

    效果图: #奥运五环 import turtle turtle.setup(1.0,1.0) #设置窗口大小 turtle.title("奥运五环") #蓝圆 turtle.pen ...

  9. Python:turtle库的使用及图形绘制

    目录 一.绘制一个八边形 二.绘制一个八角图形 三.简述问题 四.循环程序设计 五.绘制一个自己喜欢的图形 一.绘制一个八边形 使用turtle库,绘制一个八边形 代码: from turtle im ...

随机推荐

  1. CoSky 高性能 服务注册/发现 & 配置中心

    CoSky 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Consul + Sky = CoSky CoSky 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK ...

  2. 孔乙己,一名ERP顾问

    欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 公司的会议室的格局,是和别处不同的:都是中间一个大的会议圆桌,桌子上面放着各台电脑,可以随时打开ERP系统.做ERP顾问的人,傍午傍晚下了班 ...

  3. MMF的初步介绍:一个规范化的视觉-语言多模态任务框架

    在VQA, Image Caption等任务中,构建模型是一件工作量较大的工作.有没有什么能减少这些重复的工作量呢?与此同时,Pytorch,tensorflow等开源的深度学习工具包发布,大大减少了 ...

  4. Vue的常用特性

    Vue的常用特性 一.表单基本操作 都是通过v-model 单选框 1. 两个单选框需要同时通过v-model 双向绑定 一个值 2. 每一个单选框必须要有value属性 且value值不能一样 3. ...

  5. TTC测距算法

    TTC测距算法 输入输出接口 Input:(1)人与车(或车与车)的距离 (2)人与车(或车与车)的相对速度 Output:TTC collision time 算法介绍和设计方案 TTC是Time- ...

  6. TVM部署预定义模型

    TVM部署预定义模型 本文通过深度学习框架量化的模型加载到TVM中.预量化的模型导入是在TVM中提供的量化支持之一. 本文演示如何加载和运行由PyTorch,MXNet和TFLite量化的模型.加载后 ...

  7. 视频处理单元Video Processing Unit

    视频处理单元Video Processing Unit VPU处理全局视频处理,它包括时钟门.块复位线和电源域的管理. 缺少什么: •完全重置整个视频处理硬件块 •VPU时钟的缩放和设置 •总线时钟门 ...

  8. 错误:软件包:php-fpm-5.4.16-42.el7.x86_64 需要:php-common(x86-64)

    报错信息:错误:软件包:php-fpm-5.4.16-42.el7.x86_64 (/php-fpm-5.4.16-42.el7.x86_64)需要:php-common(x86-64) = 5.4. ...

  9. 【NX二次开发】Block UI 半径尺寸(沿曲线的位置)

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  10. UF_LAYOUT 布局相关

    Open C uc6460uc6462uc6463uc6464  根据视图名称旋转视图,在布局中替换视图uc6466uc6467uc6468uc6469uc6470uc6471uc6472uc6473