关于python中turtle标准库的使用
2020-06-01 本文已影响0人
脏脏的小泥娃
python中有一个自带的标准绘图库——turtle库(海龟库),它是turtle绘图体系(诞生于1969年)的python实现,是入门级的图形绘制函数库。
python的计算生态由标准库和第三方库组成。标准库不用额外下载,第三方库需要另行下载
turtle库的常用函数:
- turtle.setup(width,height,startX,StartY)
用来设置绘图窗体的大小及位置,后两个参数可省略。在电脑显示器中左上角是坐标原点(0,0),绘图窗体左上角的坐标原点是(startX,startY) - turtle.goto(x,y) 让海龟到达某一个坐标值
- turtle.penup() 抬起画笔
turtle.pendown() 画笔落下
turtle.pensize() 控制画笔粗细
turtle.pencolor() 控制画笔的颜色
这四个函数是turtle的画笔控制函数 - turtle.colormode(mode) 这个函数是用来改变RGB色彩值的使用(在python中色彩值有两种表示体系,分别是小数值模式和整数值模式)
turtle.colormode(1.0):RGB小数值模式;turtle.colormode(255):RGB整数值模式 - turtle.fd(d) 向正前方运行,参数d是行进的长度,单位是像素
turtle.bk(d) 向反方向运行
turtle.circle(r,range) 以海龟左侧某点为圆心进行曲线运动。r是运动半径,range是运动的弧度
这三个函数是turtle的运动控制函数 - turtle.seth(angle)
turtle.left(angle)
turtle.right(angle)
turtle方向控制函数,用来改变海龟行进方向(角度),angle为绝对度数,seth()为绝对坐标,left()和right()为海龟坐标
turtle空间坐标体系包含绝对坐标和海龟坐标两种。
绝对坐标:海龟的起始位置在窗体的正中央,默认X轴正方向,即向(Y轴的正方向是向上)
海龟坐标:以海龟视角的前后左右方向(类似于开车),在空间坐标体系中的X轴正方向表示0或360度,Y轴正方向表示90或-270度,X轴的反方向表示180或-180度,Y轴的反方向表示270或-90度
- turtle.done() 这个函数表示绘制完成,加入这个函数程序绘制完成后不会自动退出窗体,需要手动关闭窗体
学以致用,放上一段自己写的图形绘制代码:
#使用turtle库绘制一朵玫瑰花
import turtle as t
#引入turtle库,as的作用是给turtle库起别名
#python库引用的三种方式:
#1:使用import保留字完成库的引用,编码时采用a.b()的编码风格
#2:使用from和import保留字共同完成库的引用。使用方式:from <库名> import <函数名>或from <库名> import *
#3:import+as完成库引用,使用方式:import <库名> as <库别名>,调用时使用<库别名>.<函数名>(参数列表)
t.setup(650,850,0,0)
#设置画笔初始位置
t.pensize(3)
t.penup()
t.fd(100)
t.seth(90)
t.fd(150)
t.pendown()
#花蕊
t.fillcolor("red")
t.begin_fill()
t.right(70)
t.circle(15,65)
t.left(30)
t.circle(25,130)
t.left(20)
t.circle(25,160)
t.right(20)
t.circle(20,160)
t.right(50)
t.circle(30,175)
t.circle(50,120)
t.left(30)
t.circle(60,150)
t.left(20)
t.fd(15)
t.circle(-96,40)
t.left(30)
t.circle(30,30)
t.circle(50,108)
t.left(5)
t.fd(4)
t.left(35)
t.circle(-140,30)
t.right(5)
t.circle(140,12)
t.left(13)
t.fd(10)
t.end_fill()
t.seth(90)
t.right(200)
t.circle(-200,30)
t.seth(90)
t.left(25)
t.circle(193,26)
t.seth(90)
t.right(130)
t.circle(-200,39)
t.right(70)
t.circle(-53,23)
t.fillcolor("green")
t.seth(90)
t.right(180)
t.fd(70)
#花叶
t.right(105)
t.begin_fill()
t.fd(50)
t.fd(-25)
t.seth(90)
t.left(30)
t.circle(70,90)
t.left(90)
t.circle(70,90)
t.end_fill()
t.right(45)
t.fd(25)
t.seth(90)
t.right(180)
t.fd(25)
t.left(105)
t.begin_fill()
t.fd(50)
t.fd(-25)
t.seth(90)
t.right(30)
t.circle(-70,90)
t.right(90)
t.circle(-70,90)
t.end_fill()
t.left(45)
t.fd(25)
t.seth(90)
t.right(180)
t.fd(100)