基础介绍

turtle(海龟)库是turtle绘图体系的Python实现

  • turtle绘图体系:1969年诞生,主要用于程序设计入门
  • Python语言的标准库之一
  • 入门级的图形绘制函数库

标准库

Python计算生态 = 标准库 + 第三方库

  • 标准库:随解释器直接安装到操作系统中的功能模块
  • 第三方库:需要经过安装才能使用的功能模块
  • 库Library、包Package、模块Module,统称模块

turtle 的原理

turtle(海龟)是一种真实的存在

  • 有一只海龟,其实在窗体正中心,在画布上游走
  • 走过的轨迹形成了绘制的图形
  • 海龟由程序控制,可以变换颜色、改变宽度等 ```python import turtle

turtle.setup(1080, 350, 200, 200) turtle.shape(‘turtle’) turtle.penup() turtle.forward(-400) turtle.pendown() turtle.pensize(25) turtle.setheading(-40) for color in [‘red’, ‘yellow’, ‘orange’, ‘purple’, ‘brown’, ‘navy’, ‘olive’]: turtle.pencolor(color) turtle.circle(40, 80) turtle.circle(-40, 80) turtle.circle(40, 80/2) turtle.forward(40) turtle.circle(16, 180) turtle.forward(40 * 2/3) turtle.pencolor(‘black’) turtle.hideturtle() turtle.dot(5) turtle.done()

  1. <a name="DOGhP"></a>
  2. # 绘图窗体布局
  3. <a name="qZ9vw"></a>
  4. ## 绘图窗体
  5. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/268154/1610097144378-cb48c13d-fccf-4139-ba45-bf913559fe7a.png#align=left&display=inline&height=656&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1312&originWidth=2028&size=186234&status=done&style=none&width=1014)
  6. ```python
  7. '''
  8. - setup()设置窗体大小及位置
  9. - 4个参数中后两个可选
  10. - setup()不是必须的
  11. '''
  12. turtle.setup(width, height, startx, starty)
  13. turtle.setup(800, 400, 0, 0)
  14. turtle.setup(800, 400)
  15. turtle.setup(0.8, 0.8)
  1. import turtle
  2. turtle.setup(0.8, 0.8, 0, 0)
  3. turtle.done()

image.png

空间坐标体系

四个象限

image.png

goto()

绝对坐标,四个象限中 (x, y) 的绝对位置。

  1. import turtle
  2. turtle.goto(100, 100)
  3. turtle.dot(10)
  4. turtle.goto(100,-100)
  5. turtle.dot(10)
  6. turtle.goto(-100,-100)
  7. turtle.dot(10)
  8. turtle.goto(-100, 100)
  9. turtle.dot(10)
  10. turtle.goto(0,0)
  11. turtle.setheading(-45)
  12. turtle.done()

image.png

四个方向

image.png

forward() backward()

相对距离,相对于上一次停留点的移动距离。

  1. import turtle
  2. turtle.shape('turtle')
  3. turtle.speed(1)
  4. turtle.left(90)
  5. turtle.forward(90)
  6. turtle.stamp()
  7. turtle.home()
  8. turtle.right(90)
  9. turtle.forward(90)
  10. turtle.stamp()
  11. turtle.home()
  12. turtle.forward(90)
  13. turtle.stamp()
  14. turtle.home()
  15. turtle.backward(90)
  16. turtle.stamp()
  17. turtle.done()

image.png
思考:如何把最后一步的箭头指向西方?有几种方案?

角度坐标体系

逆时针,依次为 0, 90, 180 270 360 度。顺时针,依次为 0, -90, -180, -270 -360 度。
image.png

setheading()

绝对角度,从原点出发,沿x轴逆时针方向的绝对角度。

  1. '''
  2. - seth()改变海龟行进方向
  3. - angle为绝对度数
  4. - seth()只改变方向但不行进
  5. '''
  6. turtle.setheading(angle)
  7. turtle.setheading(45)
  8. turtle.setheading(-135)

image.png

left() right()

相对角度,在上一步停留时,自身的角度基础上,叠加一个角度。

  1. import turtle
  2. turtle.left(45)
  3. turtle.forward(150)
  4. turtle.right(135)
  5. turtle.forward(300)
  6. turtle.left(135)
  7. turtle.forward(150)
  8. turtle.done()

image.png

色彩体系

RGB 色彩模式

由三种颜色构成的万物色

  • RGB指红蓝绿三个通道的颜色组合
  • 覆盖视力所能感知的所有颜色
  • RGB每色取值范围 0-255 整数或 0-1 小数
  • 默认采用小数值,可切换为整数值 ```python ‘’’
  • 1.0: RGB小数值模式
  • 255: RGB整数值模式 ‘’’ turtle.colormode(mode) ```

常用RGB色彩

英文名称 RGB整数值 RGB小数值 中文名称
black 0, 0, 0 0, 0, 0 黑色
red 255, 0, 0 1, 0, 0 红色
green 0, 255, 0 0, 1, 0 绿色
blue 0, 0, 255 0, 0, 1 蓝色
yellow 255, 255, 0 1, 1, 0 黄色
cyan 0, 255, 255 0, 1, 1 青色
magenta 255, 0, 255 1, 0, 1 洋红
white 255, 255, 255 1, 1, 1 白色
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 番茄色

课后作业

  1. 修改程序,使得图1中,箭头方向和运动方向保持一致。

image.png
图1