目录
海龟编程 python绘图工具turtle库的用法
画布:
画笔
画笔运动命令:
画笔的控制命令:
全局控制命令:
简单turtle绘图示例:
圆中方:
三色同心圆:
四个圆中方:
螺旋正方:
随机生成随机颜色的圆:
画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置
1.1 设置画布大小
(1)turtle.screensize(canvwidth=none, canvheight=none, bg=none)
turtle.screensize(800,600,”green”) #画布的宽,高,画布颜色
turtle.screensize() #返回默认大小(400,300)
turtle.pensize() 设置画笔的宽度
turtle.pencolor() 传入参数可设置画笔的颜色,可以是字符串”green”,”red”,也可以RGB 3元组,不传入参数则返回当前画笔的颜色
turtle.speed() 设置画笔的移动速度,画笔绘制的速度范围[0,10]的整数,数字越大越快
turtle.forward(distance) 向当前画笔方向移动distance像素长
turtle.backward(distance) 向当前画笔相反方向移动distance像素长度
turtle.right(degree) 顺时针移动degree°
turtle.left(degree) 逆时针移动degree°
turtle.seth(angle) 只改变海龟的行进方向(角度按逆时针),但不行进,angle为绝对度数
turtle.pendown() 移动时绘制图形,缺省时也会绘制。落笔
turtle.penup() 移动时不绘制图形,用于换个地方绘制时使用,提笔
turtle.goto(x,y) 将画笔移动到坐标为x,y的位置
turtle.speed() 画笔绘制的速度范围[0,10]整数,建议加在前面
turtle.circle() 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
turtle.pensize(width) 绘制图形时的宽度
turtle.pencolor() 画笔颜色
turtle.fillcolor(colorstring) 绘制图形的填充颜色
turtle.color(color1,color2) 同时设置pencolor=color1,fillcolor=color2 设置画笔颜色和填充颜色
turtle.filling() 返回当前状态是否在填充状态
turtle.begin_fill() 准备开始填充图形
turtle.end_fill() 填充完成
turtle.hideturtle() 隐藏箭头显示
turtle.showturtle() 与hideturtle()函数对应
print(turtle.pos()) 获取鼠标当前位置并输出
turtle.clear() 清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset() 清空窗口,重置turtle状态为起始状态
turtle.undo() 撤销上一个turtle动作
turtle.isvisible() 返回当前turtle是否可见
stamp() 复制当前图形
turtle.write(s[,font=(“font-name”,font_size,”font_type”)])
turtle.write("华哥最帅")
写文本,s为文本内容,font是字体参数,里面分别为字体大小和类型;font为可选项,font的参数也是可选项
turtle.exitonclick() 画完后不关闭窗口,点击界面后就会退出,退出后执行后续程序
turtle.done() 画完后不关闭窗口,但是后面的程序无法执行,关闭窗口后才会执行
#圆中方
import turtle #导入turtle库
turtle.speed(1) #设置画笔速度为10,画笔速度可以为1~10,速度越大速度越快
turtle.pensize(2) #画笔粗细为2,数字越大越粗
for i in range(4): #设置后续代码循环画的次数,这里是循环四次
turtle.fd(200) #画笔的移动距离为200个像素点
turtle.left(90) #移动完200个像素点后,画笔左转90°
turtle.left(-45) #循环结束后,画笔左转-45°
turtle.circle(100*pow(2,0.5)) #绘制半径为100的圆形
turtle.done() #画完后画布不消失,点击界面后消失
print("画完了") #画布消失后才会继续执行后续语句
#三色同心圆
import turtle as t #导入turtle库,并取个别名
t.pensize(4)
color = ['red','pink','green'] #创建一个储存颜色的列表
ra = [20, 50, 100] #创建一个储存圆半径的列表
for i in range(3): #循环三次,i存储循环次数的数字
t.pu() #pu penup的缩写,也就是抬起笔,移动时不会绘画图形
t.goto(0,-ra[i]) #让画笔移动到[0,-ra[i]] 的位置
t.pd() #pd pendown 的缩写,放下笔,开始绘画。
t.pencolor(color[i]) #画笔颜色换成color列表里索引为i的颜色
t.circle(ra[i]) #绘制半径为ra列表里索引为i的半径
t.done() #绘制完成后画笔不消失
四个圆中方
import turtle as t #导入turtle库,并取个别名t
dianwei=[-150,-50,50,150] #指定四个起始点位,将其存在dianwei列表中
for i in range(4): #循环四次,并将循环次数存在i中
t.penup() #抬笔,移动时不会绘画
t.goto(dianwei[i], 0) #将画笔移动到dianwei列表索引为i的x轴位置
t.pendown() #落笔,开始绘画
for x in range(4): #多个步骤重复,所以将代码写入循环,四个边,循环四次
t.forward(50) #画笔向前50个像素点
t.left(90) #画笔左转90度
t.left(-45) #画完一个正方形后,画笔向右转动45度,也就是left(-45)
t.circle(35) #画一个半径为三十五的圆
t.left(45) #画完圆后,将角度调正,否则后续的正方形角度会歪掉
t.done() #画完后画布不消失
#螺旋正方
import turtle #导入turtle库
turtle.pensize(3) #画笔粗细为3
turtle.speed(10) #画笔绘制速度为10,1~10,数字越大速度越快
d = 0
k = 1
for j in range(100):
for i in range(4):
turtle.fd(k)
d += 91
turtle.seth(d) #seth绝对度数
k += 2
turtle.done()
#生成随机位置,随机颜色的圆,并填充随机颜色
import turtle #导入turtle库
import random #导入random函数
color1=["red","yellow","pink","blue","black","green"] #将颜色装入color1列表
for i in range(99): #写入想要绘制圆圈的个数
turtle.speed(10) #画笔速度
turtle.pensize(5) #画笔粗细
x= random.choice(color1) #随机生成圆的边缘的颜色,并赋给x
y= random.choice(color1) #随机生成圆内部颜色,并赋给y
turtle.pencolor(x) #笔的颜色
turtle.fillcolor(y) #填充颜色
x0 = random.randint(-300, 300) #随机x轴区域,并赋值给x0
y0 = random.randint(-300, 300) #随机y轴区域,并赋值给y0
turtle.penup() #抬笔,抬笔移动时不会绘制线条
turtle.goto(x0,y0) #移动到随机的x轴和y轴
turtle.pendown() #放笔,移动时开始绘制
turtle.begin_fill() #开始填充颜色
turtle.circle(50) #画一个半径为50像素点的圆
turtle.end_fill() #结束填充
turtle.done() #绘制结束不关闭窗口