Python—turtle绘图库使用方法
课程来源:
MOOC网《python语言程序设计》嵩天。
https://www.icourse163.org/learn/BIT-268001?tid=1474324443#/learn/announce
第二周:python基本图形绘制
1.tutle绘图库介绍
turtle绘图库是 Python 标准库之一,用户能利用turtle绘图库编写代码来绘制各种图形。
基本原理
- 绘图窗口:turtle提供了一个绘图窗口,就像是一张画布。用户通过编写代码控制一只虚拟的 “海龟” 在这个画布上移动,“海龟” 经过的轨迹就会形成绘制的图形。
- 指令控制:用户通过调用turtle库中的函数来控制 “海龟” 的行为。
案例1:绘制正方形
mport turtle# 创建一个turtle对象
my_turtle = turtle.Turtle()# 绘制一个正方形
for _ in range(4):my_turtle.forward(100)my_turtle.left(90)# 保持绘图窗口显示
turtle.done()
案例2:绘制蟒蛇
# 导入turtle绘图库,import关键字用于引入模块import turtle # 设置绘图窗口的大小和位置,参数依次为:窗口宽度、窗口高度、窗口左上角x坐标、窗口左上角y坐标
turtle.setup(650, 350, 200, 200) # 抬起画笔,之后移动画笔时不会绘制线条
turtle.penup() # 画笔前进(forward的缩写)指定的距离,负数表示向当前方向的反方向移动
turtle.fd(-250) # 放下画笔,之后移动画笔时会绘制线条
turtle.pendown() # 设置画笔的宽度
turtle.pensize(25) # 设置画笔的颜色为紫色
turtle.pencolor("purple") # 设置海龟(画笔)的朝向,参数为角度,这里设置为 -40度
turtle.seth(-40) # 使用for循环,循环4次for i in range(4): # 绘制半径为40,圆心角为80度的圆弧,方向为逆时针turtle.circle(40, 80) # 绘制半径为 -40(负号表示圆心在画笔左侧),圆心角为80度的圆弧,方向为顺时针turtle.circle(-40, 80) # 绘制半径为40,圆心角为80/2(即40度)的圆弧,方向为逆时针
turtle.circle(40, 80 / 2) # 画笔前进40个单位长度
turtle.fd(40) # 绘制半径为16,圆心角为180度的圆弧,方向为逆时针
turtle.circle(16, 180) # 画笔前进40 * 2/3个单位长度
turtle.fd(40 * 2 / 3) # 保持绘图窗口显示,防止程序结束后窗口立即关闭
turtle.done()
2.使用方法
(1)turtle 绘图窗体布局
- 概念:turtle的画布空间,最小单位是像素
- 设置方法:通过turtle.setup()函数实现。它可以指定绘图窗口的宽度、高度,以及窗口在屏幕上的起始位置。
import turtle
# 设置窗口宽度为800像素,高度为600像素,窗口左上角在屏幕(100, 100)位置
turtle.setup(800, 600, 100, 100)
(2)turtle空间坐标体系
- 绝对坐标:以绘图窗口中心为原点 (0, 0),水平向右为 x 轴正方向,垂直向上为 y 轴正方向。使用turtle.goto(x, y)函数可将画笔移动到指定的绝对坐标位置。
import turtle
turtle.goto(100, 100) # 画笔移动到坐标(100, 100)处
- 相对坐标:基于当前画笔位置来确定新的位置。例如,turtle.fd(distance)函数使画笔沿当前方向前进指定距离,turtle.bk(distance)则沿当前方向后退指定距离;turtle.right(angle)和turtle.left(angle)分别使画笔顺时针、逆时针旋转指定角度。
import turtle
turtle.fd(100) # 画笔沿当前方向前进100像素
turtle.left(90) # 画笔逆时针旋转90度
(3)turtle角度坐标体系
- 绝对角度:以水平向右方向为 0 度,逆时针方向为角度增加方向。使用turtle.seth(angle)函数可设置画笔的绝对朝向角度。
import turtle
turtle.seth(45) # 将画笔方向设置为与水平向右方向成45度角
- 相对角度:通过left(angle)和right(angle)函数来改变画笔方向,它们基于当前画笔方向进行旋转。如left(30)表示画笔在当前方向基础上逆时针旋转 30 度。
(4)RGB色彩体系
- 概念:RGB指红蓝绿三个通道的颜色组合。RGB色取值范围0-255整数或0-1小数。
- 设置方法:
①直接使用颜色名称:如"red"、“green”、"blue"等常见颜色名称。
import turtle
turtle.pencolor("red") # 设置画笔颜色为红色
②RGB 整数值表示:使用(r, g, b)元组,其中 r、g、b 分别是 0 - 255 之间的整数,表示红、绿、蓝三种颜色的强度。
import turtle
turtle.pencolor((128, 0, 128)) # 设置画笔颜色为紫色
③ RGB 小数值表示:使用(r, g, b)元组,r、g、b 取值范围是 0.0 - 1.0,同样表示红、绿、蓝三种颜色的强度。
import turtle
turtle.pencolor((0.5, 0.5, 0.5)) # 设置画笔颜色为灰色