嵩天老师Python(2)基本图形绘制

深入理解Python语言

  • Python语言是通用语言
  • Python语言是脚本语言
  • Python语言是开源语言
  • Python语言是跨平台语言
  • Python语言是多模型语言

实例: Python蟒蛇绘制

问题分析

  • 用程序绘制一条蟒蛇
  • 设计蟒蛇的基本形状

实例编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#PythonDraw.py
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()

图片展示

举一反三

  • 程序参数的改变
    • Python蟒蛇的颜色:黑色、白色、七彩色…
    • Python蟒蛇的长度:1节、3节、10节…
    • Python蟒蛇的方向:向左走、斜着走…
  • 计算问题的扩展
    • Python蟒蛇绘制问题是各类图像绘制问题的代表
    • 圆形绘制、五角星绘制、国旗绘制、机器猫绘制…
    • 掌握绘制一条线的方法,就可以绘制整个世界

turtle库的使用

turtle库基本介绍

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

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

标准库

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

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

turtle的原理

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

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

turtle绘图窗体

1
turtle.setup(width, height, startx, starty)
  • setup()设置窗体大小及位置
  • 4个参数中后两个可选
  • setup()不是必须的

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 | 番茄色 |

1
turtle.colormode(mode)

turtle程序语法元素分析

库引用与import

库引用

扩充Python程序功能的方式,使用import保留字完成,采用.()编码风格

1
2
import <库名> 
<库名>.<函数名>(<函数参数>)

import更多用法

  1. 使用from和import保留字共同完成
1
2
3
from <库名> import <函数名> 
from <库名> import *
<函数名>(<函数参数>)
  1. 使用import和as保留字共同完成
1
2
import <库名> as <库别名> 
<库别名>.<函数名>(<函数参数>)

turtle画笔控制函数

  • turtle.penup() 别名 turtle.pu()
    抬起画笔,海龟在飞行
  • turtle.pendown() 别名 turtle.pd()
    落下画笔,海龟在爬行
  • turtle.pensize(width) 别名 turtle.width(width)
    画笔宽度,海龟的腰围
  • turtle.pencolor(color) color为颜色字符串或r,g,b值
    画笔颜色,海龟在涂装
    • 颜色字符串 :turtle.pencolor("purple")
    • RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
    • RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

turtle运动控制函数

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

turtle方向控制函数

  • turtle.setheading(angle) 别名 turtle.seth(angle)
    改变行进方向,海龟走角度
  • angle: 行进方向的绝对角度
  • turtle.left(angle) 海龟向左转
  • turtle.right(angle) 海龟向右转
  • angle: 在海龟当前行进方向上旋转的角度

循环语句与range()函数

循环语句

按照一定次数循环执行一组语句

1
2
3
4
for <变量> in range(<次数>):
<被循环执行的语句>

# <变量>表示每次循环的计数,0到<次数>-1

range()函数

产生循环计数序列

  • range(N)
    产生 0 到 N-1的整数序列,共N个
  • range(M,N)
    产生 M 到 N-1的整数序列,共N-M个