Python绘制“蟒蛇”——turtle库基础知识

turtle(海龟)库是turtle绘图体系的Python实现
turtle库属于标准库之一
Python计算生态=标准库+第三方库
-标准库:随解释器直接安装到操作系统中的功能模块
-第三方库:需要经过安装才能使用的功能模块
-库Library、包Package、模块Module,统称模块

turtle库的使用
turtle(海龟)是一种真实的存在
-有一只海龟,其实在窗体正中心,在画布上游走
-走过的轨迹形成了绘制的图形
-海龟由程序控制,可以变换颜色、改变宽度等
turtle的最小单位是像素

(1)setup()设置窗体 大小及位置
turtle.setup(width,height,startx,starty)
-4个参数中后两个可选,如果后两个不填,则系统默认画布在屏幕的中间
-setup()不是必须的
在这里插入图片描述
(2)turtle空间坐标体系
①绝对坐标
海龟的绝对坐标如下图所示:
在这里插入图片描述turtle.goto(x,y)
使用goto函数实现如下代码:

import turtle
turtle.goto(100,100)
turtle.goto(100,-100)
turtle.goto(-100,-100)
turtle.goto(-100,100)
turtle.goto(0,0)

运行结果如下:
在这里插入图片描述
②相对坐标
在这里插入图片描述
turtle.fd()向海龟的正前方向运行
turtle.bk()向海龟的反方向运行
turtle.circle()以海龟方向的左侧某一点为圆心,进行曲线运行
在这里插入图片描述
(3)turtle角度坐标体系
①绝对坐标
在这里插入图片描述
turtle.seth(angle)
-seth()改变海龟行进方向
-seth()只改变方向但不行进
-angle为绝对度数
②相对坐标
海龟角度如下所示:
在这里插入图片描述
绘制以下的小代码:

import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

在这里插入图片描述

RGB色彩模式
RGB指红绿蓝三个通道的颜色组合,每色取值范围0-255整数或0-1小数

英文名称RGB整数值RGB小数值中文名称
white255,255,2551,1,1白色
yellow255,255,01,1,0黄色
magenta255,0,2551,0,1洋红
cyan0,255,2550,1,1青色
blue0,0,2550,0,1蓝色
black0,0,00,0,0黑色
seashell255,245,2381,0.96,0.93海贝色
gold255,215,01,0.84,0金色
pink255,192,2031,0.75,0.80粉红色
brown165,42,420.65,0.16,0.16棕色
purple160,32,2400.63,0.13,0.94紫色
tomato255,90,711,0.39,0.28番茄色

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

库引用:扩充Python()程序功能的方式
-使用import保留字完成,采用< a >.< b >()编码风格
import <库名>
<库名>.<函数名>(<函数参数>)
PS1:前面的库名太多书写累赘时,可以使用from和import保留字共同完成,从而达到不写库名
from <库名> import <函数名>
或 from <库名> import *
<函数名>(<函数参数>)
但是,前面的不会出现函数重名问题,而后面的方法会出现,出现程序结果不一致的问题
PS2:若不想重名,又觉得名字太长,可以使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)

画笔控制函数
(1)画笔操作后一直有效,一般成对出现
-turtle.penup() 别名 turtle.pu() 抬起画笔,海龟在飞行,画笔不在画布上形成图案
-turtle.pendown() 别名 turtle.pd() 落下画笔,海龟在爬行
(2)画笔设置后一直有效,直至下次重新设置
-turtle.pensize(width) 别名 turtle.width(width) 画笔宽度,海龟的腰围
-turtle.pencolor(color) color为颜色字符串或r,g,b值 画笔颜色,海龟在涂装
①颜色字符串:turtle.pencolor(“purple”)
②RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
③RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

运动控制函数:控制海龟行进,走直线或走曲线
-turtle.forward(d) 别名 turtle.fd(d) 向前行进,海龟走直线,d为行进距离,可以为负数
-turtle.circle(r,extent=None) 根据半径r绘制extent角度的弧形,r为默认圆心在海龟左侧r距离的位置,extent为默认是360度整圆

方向控制函数:控制海龟面对方向,绝对角度或海龟角度,海龟只改方向,不行动
(1)绝对角度
-turtle.setheading(angle) 别名 turtle.seth(angle) 改变行进方向,海龟走角度
(2)海龟角度
-turtle.left(angle) 海龟向左转
-turtle.right(angle) 海龟向右转

循环语句和range()
(1)循环语句:按照一定次数循环执行一组语句
for <变量> in range(<参数>)
<被循环执行的语句>
-<变量>表示每次循环的计数,0到<次数>-1 (左侧为小程序,右侧为输出结果)
在这里插入图片描述
如果稍加修改,我们可以看出,print中用逗号分隔,输出的中间会多一个空格
在这里插入图片描述
如果不要逗号,我们可以这么输出
在这里插入图片描述
(2)range()函数:产生循环计数序列
-range(N) 产生0到N-1的整数序列,共N个
-rang(M,N) 产生M到N-1的整数序列,共N-M个

turtle.done()函数:如果是文件式描写方法,程序运行结束后不会退出,需要手工关闭窗体退出

贴绘制蟒蛇的代码,以及画出的结果图:

import turtle #引入了一个绘图库
turtle.setup(650,650,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()

在这里插入图片描述

在实验室摸鱼,附上一幅买家秀和卖家秀。
在这里插入图片描述
在这里插入图片描述

import turtle
turtle.setup(400,400,200,200)
turtle.penup()
turtle.fd(-125)
turtle.right(90)
turtle.fd(200)
turtle.left(150)
turtle.pendown()
turtle.pensize(2)
turtle.pencolor("black")
turtle.fd(150)
turtle.left(90)
turtle.circle(-100,300)
turtle.left(90)
turtle.fd(150)
turtle.right(120)
turtle.penup()
turtle.fd(125)
turtle.right(90)
turtle.fd(210)
turtle.pendown()
turtle.fd(10)
turtle.left(90)
turtle.penup()
turtle.fd(40)
turtle.pensize(8)
turtle.left(90)
turtle.pendown()
turtle.fd(15)
turtle.fd(-20)
turtle.left(90)
turtle.penup()
turtle.fd(80)
turtle.right(90)
turtle.pendown()
turtle.fd(22)
turtle.penup()
turtle.pensize(2)
turtle.fd(-50)
turtle.goto(20,60)
turtle.left(60)
turtle.pendown()
turtle.circle(75,40)
turtle.penup()
turtle.goto(-20,60)
turtle.left(30)
turtle.pendown()
turtle.circle(75,-40)
turtle.penup()
turtle.goto(-25,-20)
turtle.pendown()
turtle.right(90)
turtle.circle(30,180)
turtle.penup()
turtle.goto(50,100)
turtle.pendown()
turtle.right(45)
turtle.fd(80)
turtle.fd(-20)
turtle.right(30)
turtle.fd(20)
turtle.fd(-20)
turtle.left(60)
turtle.fd(20)
turtle.penup()
turtle.goto(-50,100)
turtle.pendown()
turtle.left(45)
turtle.fd(80)
turtle.fd(-20)
turtle.left(30)
turtle.fd(20)
turtle.fd(-20)
turtle.right(60)
turtle.fd(20)
turtle.penup()
turtle.goto(-45,-10)
turtle.left(175)
turtle.pendown()
turtle.pensize(5)
turtle.colormode(255)
turtle.pencolor((137, 207, 240))
turtle.fd(40)
turtle.penup()
turtle.goto(45,-10)
turtle.left(15)
turtle.pendown()
turtle.pensize(5)
turtle.fd(40)
turtle.hideturtle()

在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值