Python-turtle 库

turtle 库概述

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

  • Python语言的标准库之一。
  • 入门级的图形绘制函数库。

标准库

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

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

turtle的原理

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

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

turtle绘图窗体布局

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

image

turtle空间坐标体系

绝对坐标:

turtle.goto(x, y)

image

海龟坐标:

image
image

turtle角度坐标体系

绝对角度

turtle.seth(angle)
  • seth()改变海龟行进方向
  • angle为绝对度数
  • seth()只改变方向但不行进

image

海龟角度

image

RGB色彩体系

RGB色彩模式:由三种颜色构成的万物色

  • RGB指红蓝绿三个通道的颜色组合
  • 覆盖视力所能感知的所有颜色
  • RGB每色取值范围0-255整数或0-1小数

image

turtle的RGB色彩模式

turtle.colormode(mode)

默认采用小数值 可切换为整数值

  • 1.0:RGB小数值模式
  • 255:RGB整数值模式

turtle画笔控制函数

画笔操作后一直有效,一般成对出现
画笔设置后一直有效,直至下次重新设置
  • turtle.penup() 别名 turtle.pu()
    抬起画笔,海龟在飞行
  • turtle.pendown() 别名 turtle.pd()
    落下画笔,海龟在爬行
  • turtle.pensize(width) 别名 turtle.width(width)
    画笔宽度,海龟的腰围
  • turtle.pencolor(color)
    画笔颜色,海龟在涂装

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运动控制函数

控制海龟行进:走直线 & 走曲线
  • 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: 在海龟当前行进方向上旋转的角度

附蟒蛇绘制代码

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()   //绘制完成后不关闭窗口

猜你喜欢

转载自blog.csdn.net/sctec/article/details/82860012