栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python第三方库--turtle库

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python第三方库--turtle库

目录
  • turtle库
    • 基本介绍
    • 绘图窗体布局
    • 画笔控制
    • 运动控制
    • 方向控制
    • RGB色彩体系
    • 其它函数
  • turtle绘图示例
    • 示例1:python蟒蛇绘制
    • 示例2:七彩车轮
    • 示例3:六芒星

本文参考:中国大学MOOC嵩天老师的python课程

turtle库 基本介绍
  1. 入门级图形绘制函数第三方库1
  1. turtle绘图原理:一只海龟在窗体中行走,路径便是绘制的图形
绘图窗体布局

turtle的绘图窗体是一个画布空间,最小单位是像素

在使用turtle时分为屏幕坐标系和窗体坐标系

绘图窗体函数描述
turtle.setup(width,height,startx,starty)可以使用setup()函数设置窗体大小和相对屏幕的位置(默认位于屏幕中央),其中startx和starty两个参数可选

画笔控制
函数别名描述
turtle.penup()turtle.pu()提起画笔(常用于移动海龟位置,并不在画布上显示路径)
turlte.pendown()turtle.pd()落下画笔(与penup()函数成对出现)
turtle.pensize(width)/turtle.width(width)用于设置画笔宽度
turtle.pencolor(color)设置画笔颜色(color为颜色字符串或RGB数值2
turtle.speed(speed)设置画笔移动速度,范围取[0-10]的整数,数字越快速度越快,0最快
运动控制

turtle绘图体系中包含两种坐标体系:绝对坐标和海龟坐标
绝对坐标在绝对坐标系下的坐标体系,而海龟角度则是根据海龟的视角的角度体系

绝对坐标下运动控制函数描述
turtle.goto(x,y) /turtle.setpos(x,y)海龟移动到坐标(x,y)处

海龟坐标下运动控制函数别名描述
turtle.forward(d)turtle.fd(d)海龟前进d个像素
turtle.backward(d)turtle,bk(d)海龟后退d个像素
turtle.circle(r,angle,steps)海龟沿半径为r的圆前进(angle/360)个圆周,即画圆圈3
方向控制

turtle库中包含两种角度体系:绝对角度和海龟角度
其中绝对角度在绝对坐标系下的角度体系,而海龟角度则是根据海龟的视角的角度体系

绝对角度方向控制函数描述
turtle.seth(angle)改变海龟前进角度,不使海龟前进,angle为绝对角度

海龟角度方向控制函数描述
turtle.left(angle)控制海龟向左转角度angle(angle是相对于海龟前进的角度,并不使海龟前进)
turtle.right(angle)控制海龟向右转角度angle(同上)
RGB色彩体系

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



turtle的RGB色彩模式默认采用小数值,可以切换为整数值:turtle.colormode(mode)
mode=1,小数模式,修改颜色使用RGB小数值
mode=255,整数模式,修改颜色使用RGB整数值

颜色填充

函数描述
turtle.begin_fill()开始填充
turtle.fillcolor(color)填充颜色
turtle.end_fill()结束填充
turtle.filling()判断是否为填充状态
其它函数

设置画笔

函数描述
turtle.hideturtle()隐藏画笔
turtle.showturtle()显示画笔
turtle.delay()设置并返回绘图延迟
turtle.dot(r,color)绘制半径为r,颜色为color的圆点
turtle.reset()从屏幕中删除海龟的绘图,海龟回到原点并设置所有变量为默认值
turtle.clear()从屏幕中删除指定海龟的绘图。不移动海龟。海龟的状态和位置以及其他海龟的绘图不受影响
turtle.setx(x)设置海龟的横坐标为 x,纵坐标保持不变
turtle.sety(y)设置海龟的纵坐标为 y,横坐标保持不变

获取海龟(画笔)状态

函数描述
turtle.home()设置当前画笔位置为原点,朝向东
turtle.position()获取海龟当前位置
turtle. towards(x,y)从海龟位置到到 (x,y)的矢量到海龟初始朝向的矢量的夹角。
turtle.xcor()x坐标
turtle.ycor()y坐标
turtle.heading()返回海龟朝向角度
turtle.distance(x,y)返回从海龟位置到 (x,y)的单位距离
turtle绘图示例 示例1:python蟒蛇绘制
import turtle
turtle.setup(700,500)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor('purple')
for i in range(4):
	turtle.circle(40,80)
	turtle.circle(-40,80)
turtle.circle(40,40)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()	
	

示例2:七彩车轮
iimport turtle
import random
turtle.setup(800,400)
angle=36
color=['pink','purple','green','cyan','gold','brown','yellow','blue']
for i in range(10):
    turtle.pensize(10)
    pencolor=color[random.randint(0,7)]
    turtle.pencolor(pencolor)
    turtle.fd(180)
    if i==9:
        turtle.left(angle)
        turtle.penup()
        turtle.goto(0,-180)
        turtle.pd()
        turtle.circle(180) 
        
    else:
        turtle.penup()
        turtle.goto(0,0)
        turtle.pd()
        turtle.left(angle)
turtle.circle(180)    
turtle.done()

示例3:六芒星
import turtle
import math

turtle.pensize(4)
turtle.pencolor('brown')

# 绘制小六边形
turtle.left(30)
for i in range(6):
    turtle.fd(50)
    turtle.left(60)
# 调整画笔状态,准备绘制大六边形    
turtle.penup()    
turtle.goto(0,-50)
turtle.pendown()
# 大六边形
for i in range(6):
    turtle.fd(100)
    turtle.left(60)
# 绘制小六角星    
turtle.left(30)    
for i in range(3):
    turtle.fd(100*(math.sqrt(3)))
    turtle.left(120)   
turtle.right(60)
turtle.pu()
turtle.circle(100,60)
turtle.pd()
turtle.left(60)
for i in range(3):
    turtle.fd(100*(math.sqrt(3)))
    turtle.left(120)
# 调整画笔状态,准备绘制第一个大六角星    
turtle.right(90)
turtle.pu()
turtle.goto(0,-100)
turtle.pd()
turtle.left(30)
# 第一个大六角星
for i in range(3):
    turtle.fd(150*(math.sqrt(3)))
    turtle.left(120)
turtle.right(60)
turtle.circle(150)
turtle.circle(150,60)
turtle.left(60)
for i in range(3):
    turtle.fd(150*(math.sqrt(3)))
    turtle.left(120)
# 调整画笔状态,准备绘制第二个大六角星    
turtle.right(60)
turtle.circle(150,30)
turtle.pensize(1)
turtle.left(60)
# 第二个大六角星
for i in range(3):
    turtle.fd(150*(math.sqrt(3)))
    turtle.left(120)
turtle.right(60)
turtle.circle(150,60)
turtle.left(60)
for i in range(3):
    turtle.fd(150*(math.sqrt(3)))
    turtle.left(120)
# 调整画笔状态,准备绘制六连环    
turtle.pu()
turtle.goto(0,50)
turtle.pd()
# 六连环绘制
turtle.color('black')
for i in range(6):
    turtle.circle(75)
    turtle.left(60)

turtle.done()   


  1. 标准库:随解释器直接安装到操作系统中的功能模块
    第三方库:需要经过安装才能使用的函数库 ↩︎

  2. 此处的RGB数值有两种表示方式,分别为元组形式或数值形式,如turtle.pencolor(255,255,255)和turtle.pencolor((255,255,255)) ↩︎

  3. 海龟画圆时,圆心的默认位置是其左方90度距离r的绝对值的位置(r为负值时圆心位于右方),其中第三个参数steps,未指定时,circle()函数绘制圆弧,指定时则绘制边数为steps的多边形,如绘制一个三角形我们用一行代码实现:turtle.circle(50,360,3) ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号