首页 > 第四章 python的turtle库的运用

第四章 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小数值中文名称
white255,255,2551,1,1白色
yellow255,255,01,1,0黄色
magenta255,0,2551,0,1洋红
cyan0,255,2550,1,1青色
blue0,0,2550,0,1蓝色
black0,0,00,0,0黑色
seashell255,245,2381,0.96,0.93海贝色
gold255,215,01,0.84,0金色
pink255,192,2031,0.75,0.80粉红色
brown165,42,420.65,0.16,0.16棕色
purple160,32,2400.63,0.13,0.94紫色
tomato255,99,711,0.39,0.28番茄色

turtle的RGB色彩模式

默认采用小数值,可以切换成整数值:

1 turtle.colormode(mode)
2 #1.0:RGB小数值模式
3 #255:RGB整数值模式

turtle程序语法元素分析:

库引用:

扩充python程序功能的方式

用import保留字完成,采用.()编码风格

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个

 

转载于:https://www.cnblogs.com/chy8/p/9448606.html

更多相关: