文章目录

  • 一、turtle库概述
  • 二、标准库
  • 三、turtle的绘图窗口
  • 1. 屏幕坐标系
  • 2. turtle空间坐标体系
  • 3. turtle角度坐标体系
  • 四、RGB色彩体系
  • 五、turtle程序语法元素分析
  • 1. 库引用和import
  • 1.1 使用import保留字完成
  • 1.2 使用from和import保留字共同完成
  • 1.3 使用import和as保留字共同完成
  • 2. turtle画笔控制函数
  • 3. turtle运动控制函数
  • 3.1 走直线
  • 3.2 走曲线
  • 4. turtle方向控制函数
  • 5. 循环语句
  • range()函数
  • 六、蟒蛇绘图代码分析



Pythonturtle画图代码兰花 python turtle绘图代码_保留字


以下内容来自于中国慕课网中《零基础学Python语言CAP》课程的学习笔记。

一、turtle库概述

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

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

二、标准库

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

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

三、turtle的绘图窗口

turtle的一个画布空间最小单位是像素

1. 屏幕坐标系

  1. 电脑显示屏左上角坐标为(0,0)
  2. 绘图窗体的左上角是turtle绘图的坐标原点
  3. 通过turtle.setup(width,height,startx,starty)函数可以设置绘图窗口大小及位置
    3.1 4个参数中后两个可选
    3.2 setup()不是必须的
    3.3 绘图窗口坐标位置根据屏幕原点设定的

Pythonturtle画图代码兰花 python turtle绘图代码_保留字_02

例如:

Pythonturtle画图代码兰花 python turtle绘图代码_ci_03

2. turtle空间坐标体系

画布上以中心为原点的空间坐标系

  • 绝对坐标

    turtle.goto(x, y)从原点到达相对于原点的(x,y)处
例如:
import turtle
turtle.goto( 100, 100)
turtle.goto( 100,-100)
turtle.goto(-100,-100)
turtle.goto(-100, 100)
turtle.goto(0,0)


  • 海龟坐标

3. turtle角度坐标体系

画布上以空间x轴为0度的角度坐标系

  • 绝对角度

    turtle.seth(angle)
  1. seth()改变海龟行进方向
  2. angle为绝对度数
  3. seth()只改变方向但不行进
例如

Pythonturtle画图代码兰花 python turtle绘图代码_turtle库_04

Pythonturtle画图代码兰花 python turtle绘图代码_ci_05

  • 海龟角度
举例:
import turtle
turtle.left(45)  #只改变指针方向
turtle.fd(150)   #指针前移150个像素
turtle.right(135)#相对现在的位置改变指针方向右转135度
turtle.fd(300)   #指针前移300个像素
turtle.left(135)
turtle.fd(150)


四、RGB色彩体系

整数值&小数值

  • 由三种颜色构成
  1. RGB指红蓝绿三个通道的颜色组合
  2. 覆盖视力所能感知的所有颜色
  3. RGB每色取值范围0-255整数或0-1小数
  • 常见色彩组合


  • turtle.colormode(mode)
    默认采用小数值 可切换为整数值
    1.0:RGB小数值模式
    255:RGB整数值模式

五、turtle程序语法元素分析

import turtle
turtle.setup(650,350,200,200)
....

以上的代码中出现turtle.setup()的方法使用,这种被称为<a>.<b>()的编码风格

1. 库引用和import

是为了扩充python程序功能的方式

1.1 使用import保留字完成

采用Pythonturtle画图代码兰花 python turtle绘图代码_保留字_06的编码风格

引入形式:import <库名>
函数使用:<库名>.<函数名>(<函数参数>)

优点:不会出现函数重名问题
缺点:繁琐

1.2 使用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()

1.3 使用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()

2. turtle画笔控制函数

画笔操作后一直有效,直至下次重新设置,一般成对出现

  • turtle.penup() 别名 turtle.pu()
    抬起画笔,海龟在飞行,不留下画图痕迹
  • turtle.pendown() 别名 turtle.pd()
    落下画笔,海龟在爬行,留下画图痕迹
  • penolor(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))

3. turtle运动控制函数

控制海龟行进:走直线 & 走曲线

3.1 走直线

turtle.forward( d) 别名 turtle.fd(d)

  1. 向前行进,海龟走直线
  2. d :行进距离
  1. d为正数:前进
  2. d为负数:后退
3.2 走曲线

turtle.circle(r,extent=None)

  1. 根据半径r绘制extent角度的弧度
  2. r: 默认圆心在海龟左侧r距离的位置
    r为正:表圆心在海龟正左侧r距离处
    r为负:表圆心在海龟正右侧r距离处
  3. extent:绘制角度,默认是360度整圆
    若不设置,表示默认画整圆

例如:

  • turtle.circle(100)
    表示圆心在左侧100像素处,画整个圆
  • turtle.circle(-100,180 )
    圆心在海龟右侧100像素处,画180的弧度,即半圆

4. turtle方向控制函数

控制海龟面对方向: 绝对角度 & 海龟角度

  • 绝对角度
    turtle.setheading(angle) 别名 turtle.seth(angle)
  1. 改变行进方向,改变海龟的头朝向,但是不产生位移变化
  2. angle:行进方向的绝对角度
    正数:向左旋转angle度
    负数:向右旋转angle绝对值的角度

Pythonturtle画图代码兰花 python turtle绘图代码_ci_07


Pythonturtle画图代码兰花 python turtle绘图代码_Python_08


Pythonturtle画图代码兰花 python turtle绘图代码_Python_09

  • 海龟角度
    turtle.left(angle) 与 turtle.right(angle)
  1. turtle.left 海龟左转
  2. turtle.right 海龟右转
  3. angle :海龟左转或者右转的角度值

5. 循环语句

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

  • 语法格式
    for <变量> in range(<次数>) :
    <被循环执行的语句>
  • <变量>表示每次循环的计数,0到(<次数>-1)
  • for i in range(5) :
    print(i)
    结果:
  • for i in range(5)
    print(“Hello :”,i)#print参数带逗号带边前面一个参数和后面一个参数的输出有一个空隔
range()函数

产生循环计数序列

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

range(5)----->0,1,2,3,4

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

range(2,5)---->2,3,4

六、蟒蛇绘图代码分析

(650,350,200,200) #设置绘图窗口长650,宽350,窗口左上角坐标(200,200),绘图窗口出现

Pythonturtle画图代码兰花 python turtle绘图代码_保留字_10


penup() #设置海龟此时为飞行状态,不留下绘图痕迹,屏幕出现指针


Pythonturtle画图代码兰花 python turtle绘图代码_Python_11


fd(-250) #海龟从绝对坐标系原点倒退250像素,走直线


pendown() #海龟爬行模式,开始绘图准备


pensize(25) #设置海龟宽度,即爬行痕迹的宽度


pencolor(“purple”) #海龟爬行痕迹颜色为紫色,指针变成紫色


Pythonturtle画图代码兰花 python turtle绘图代码_Python_12


seth(-40) #海龟右转了40度


Pythonturtle画图代码兰花 python turtle绘图代码_Python_13


circle(40,80) #海龟左侧半径40处为圆心,转动80度


Pythonturtle画图代码兰花 python turtle绘图代码_保留字_14


circle(-40,80) #海龟右侧半径40处为圆心,转动80度


Pythonturtle画图代码兰花 python turtle绘图代码_保留字_15


for i in range(3): #设置一个循环变量i 共循环3次


circle(40,80) #海龟左侧半径40处为圆心,转动80度


circle(-40,80) #海龟右侧半径40处为圆心,转动80度


Pythonturtle画图代码兰花 python turtle绘图代码_turtle库_16


circle(40,80/2) #海龟左侧半径40处为圆心,转动40度


Pythonturtle画图代码兰花 python turtle绘图代码_turtle库_17


fd(40) #海龟直线前进40像素


Pythonturtle画图代码兰花 python turtle绘图代码_Python_18


circle(16,180) #海龟左侧半径16处为圆心,转动180度


Pythonturtle画图代码兰花 python turtle绘图代码_ci_19

fd(40*2/3) #海龟直线前进


Pythonturtle画图代码兰花 python turtle绘图代码_保留字_20