turtle库的使用(专题)

举报
老虎也淘气 发表于 2023/10/09 19:45:55 2023/10/09
【摘要】 # turtle库的使用## 一、基本介绍<font color=blue>turtle(海龟)库是turtle绘图体系的Python实现-<font color=blue> turtle绘图体系:1969年诞生,主要用于程序设计入门- <font color=blue>Python语言的标准库之一-<font color=blue> 入门级的图形绘制函数库标准库Python计算生态 = 标...

# turtle库的使用
## 一、基本介绍
<font color=blue>turtle(海龟)库是turtle绘图体系的Python实现
-<font color=blue> turtle绘图体系:1969年诞生,主要用于程序设计入门
- <font color=blue>Python语言的标准库之一
-<font color=blue> 入门级的图形绘制函数库

标准库
Python计算生态 = 标准库 + 第三方库
<font color=blue>- 标准库:随解释器直接安装到操作系统中的功能模块
<font color=blue>- 第三方库:需要经过安装才能使用的功能模块
- 库Library、包Package、模块Module,统称模块

<font color=red>turtle的原理
**有一只海龟,其实在窗体正中心,在画布上游走
- 走过的轨迹形成了绘制的图形
- 海龟由程序控制,可以变换颜色、改变宽度等**

**turtle欣赏**

f5f6e829878240378b81621339e23816.png

4f5bb80759ff46649c04e81b7c6b7196.png


## 二、turtle绘图窗体布局

870547890a8747d193a43ed1b5459a6a.png

b446d161c22a45468df078ccb10a9df8.png

38d95dc4829a4c9fb20dae17cc5a1583.png


## 三、turtle空间坐标体系

86d9df41182743a1a1bfa8e634551523.png


例子:

import turtle
turtle.goto( 100, 100)
turtle.goto( 100,-100)
turtle.goto(-100,-100)
turtle.goto(-100, 100)
turtle.goto(0,0)


结果如下图:

429a0473146d4591b528442828b198ba.png


操作方法:

a9be9ca93dde4295bcfc09f11f036825.png


## 四、turtle角度坐标体系


911e8e0e9cec49199f773087bcf4403b.png

例子:`turtle.seth(45) 

76fa5eb9884344a7a0b7f15a11e04480.png


import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

5b9370b9ea4641f081e794ef0621414c.png



## 五、RGB色彩体系
由三种颜色构成的万物色
- RGB指红蓝绿三个通道的颜色组合
- 覆盖视力所能感知的所有颜色
- RGB每色取值范围0-255整数或0-1小数


常用RGB色彩

6152c4ef57bd401d8bebbd7c8132c9d4.png

a0e3aec14dd24860a36eb7d853fb0674.png


## 六、库引用及import
扩充Python程序功能的方式
- 使用import保留字完成,采用<a>.<b>()编码风格
import <库名> 
<库名>.<函数名>(<函数参数>)

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()


<font color=red>import更多方法:
使用from和import保留字共同完成
from <库名> import <函数名> 
from <库名> import *
<函数名>(<函数参数>)

from turtle import *
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
circle(40, 80)
circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()


这样的好处是减少了每行turtle的使用。


**两种方法比较**:
>import <库名> 
<库名>.<函数名>(<函数参数>)

>from <库名> import <函数名> 
from <库名> import *
<函数名>(<函数参数>)

**第一种方法不会出现函数重名问题,第二种方法则会出现**

使用import和as保留字共同完成
import <库名> as <库别名> 
<库别名>.<函数名>(<函数参数>)
给调用的外部库关联一个更短、更适合自己的名字

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()

## 七、turtle画笔控制函数
<font color=red>penup(), pendown()
pensize(), pencolor()


<font color=red>画笔操作后一直有效,一般成对出现
- turtle.penup() 别名 turtle.pu()
抬起画笔,海龟在飞行
- turtle.pendown() 别名 turtle.pd()
落下画笔,海龟在爬行

<font color=red>画笔设置后一直有效,直至下次重新设置
- turtle.pensize(width) 别名 turtle.width(width)
画笔宽度,海龟的腰围
- turtle.pencolor(color) color为颜色字符串或r,g,b值
画笔颜色,海龟在涂装
>pencolor(color)的color可以有三种形式

- 颜色字符串 :turtle.pencolor("purple")
- RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
- RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

## 八、turtle运动控制函数
fd()
circle()

<font color=red>控制海龟行进:走直线 & 走曲线


- turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线
- d: 行进距离,可以为负数
-  turtle.circle(r, extent=None)
根据半径r绘制extent角度的弧形
- r: 默认圆心在海龟左侧r距离的位置
- extent: 绘制角度,默认是360度整圆

6a9cc459872d4628821fe4c092021950.png


画笔设置后一直有效,直至下次重新设置
- turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线
- d: 行进距离,可以为负数

## 八、turtle方向控制函数
控制海龟面对方向: 绝对角度 & 海龟角度
- turtle.setheading(angle) 别名 turtle.seth(angle)
改变行进方向,海龟走角度
- angle: 行进方向的绝对角度

e7499a24eb4146c0a9793c73bcea5595.png


控制海龟面对方向: 绝对角度 & 海龟角度
- turtle.left(angle) 海龟向左转
- turtle.right(angle) 海龟向右转
- angle: 在海龟当前行进方向上旋转的角度

## 九、循环语句与range()函数
for 和 in 保留字
range()

按照一定次数循环执行一组语句
<font color=red>for <变量> in range(<次数>):
<被循环执行的语句>
 <变量>表示每次循环的计数,0到<次数>-1

```python
>>> for i in range(5):
print(i)
0
1
2
3
4
```

```python
>>> for i in range(5):
print("Hello:"
,i)
Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4

```
**range()函数
产生循环计数序列**
- range(N)
产生 0 到 N-1的整数序列,共N个
- range(M,N)
例如: range(5)
0, 1, 2, 3, 4
产生 M 到 N-1的整数序列,共N-M个
例如:range(2, 5)
2, 3, 4
## 十、"Python蟒蛇绘制"代码分析

0e080bf63c674d0a9bc01f44277e023b.png

4da0de6458fa405295454de4d898a423.png

9b9a2ce571c341c680db41cba947c67b.png

fcdcb9444a754d44984d1b6f12c1595d.png

## 总结
- turtle库的海龟绘图法
- turtle.setup()调整绘图窗体在电脑屏幕中的布局
- 画布上以中心为原点的空间坐标系: 绝对坐标&海龟坐标
- 画布上以空间x轴为0度的角度坐标系: 绝对角度&海龟角度
- 常用RGB色彩体系的认识
- turtle程序语法元素分析
>- 库引用: import、from…import、import…as…
>- penup()、pendown()、pensize()、pencolor()
>- fd()、circle()、seth()
>- 循环语句:for和in、range()函数

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。