turtle绘图的基础认识
1.画布(canvas)
画布是我们绘图所在的区域,我们可以改变他的初始位置和大小
1.设置画布的大小
turtle.screensize(canvwidth= , canvheight= , bg='' )参数分别为画布的宽(默认值400px), 高(默认值300px), 背景颜色(颜色的英文单词 eg:'red')。
2.设置画布的位置
turtle.setup(width=0.5, height=0.75, startx= , starty= )参数分别为画布的宽,高(输入值为整数时表示具体像素,输入值为小数时表示画布窗口占电脑屏幕的比例), (startx,starty)表示窗口左上顶点的坐标(默认值时,画布窗口在屏幕中心)
2.画笔
画笔呢就是小乌龟,它一开始默认是在坐标原点的,朝向x轴正方向画笔的属性设置
- turtle.pensize():设置画笔的宽度也就是画线的粗细,单位为px
- turtle.pencolor():设置画笔的颜色,传入参数可以是代表颜色的字符串也可以是rgb值,如果没有参数传入则返回当前画笔颜色
- turtle.speed():设置画笔移动的速度,范围为[0,10]整数,数字越大移动越快
绘图命令
turtle绘图命令分为三种:运动命令,画笔控制命令和全局控制命令。
1.画笔运动命令
命令 | 说明 |
turtle.forward(distance) | 向当前画笔方向移动distance像素长度 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针移动degree° |
turtle.left(degree) | 逆时针移动degree° |
turtle.pendown() | 落笔,绘制图形 |
turtle.penup() | 提笔,不绘制图型,一般用于转到另一个地方绘制 |
turtle.goto(x,y) | 将画笔移动到位置(x,y) |
turtle.circle(radius, extent=None, steps=None) |
|
setx() | 将当前x轴移动到指定位置 |
sety() | 将当前y轴移动到指定位置 |
home() | 设置当前画笔位置为原点,朝向x轴正方向 |
dot(r) | 绘制一个指定直径和颜色的圆点 |
2.画笔控制命令
命令 | 说明 |
turtle.fillcolor(colorstring) | 填充图形的颜色 |
turtle.color(color1, color2) | 同时设置pencolor=color1, fillcolor=color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 开始填充 |
turtle.end_fill() | 结束填充 |
turtle.hideturtle() | 隐藏画笔 |
turtle.showturtle() | 显示画笔 |
3.全局控制命令
turtle.clear() | 清空turtle窗口,turtle的位置和状态不变 |
turtle.reset() | 清空窗口,重置turtle状态为起始状态 |
turtle.undo() | 撤销上一条命令 |
turtle.isvisible() | 返回当前turtle是否可见 |
stamp() | 复制当前图形 |
turtle.write(s [,font=("font-name",font_size,"font_type")]) | turtle写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项 |
4.其他命令
命令 | 说明 | |||||||||
turtle.mainloop()或turtle.done() | 启动事件循环 -调用Tkinter的mainloop函数。 必须是乌龟图形程序中的最后一个语句。 | |||||||||
turtle.mode(mode=None) |
设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
|
|||||||||
turtle.delay(delay= ) | 设置以毫秒为单位的绘图延迟 | |||||||||
turtle.begin_poly() | 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点 | |||||||||
turtle.end_poly() | 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点,与第一个顶点相连。 | |||||||||
turtle.get_poly() | 返回最后记录的多边形 |
eg:
turtle画国旗
#画国旗红色方形背景
import turtle
turtle.goto(-120,120)
turtle.color("red","red")
turtle.begin_fill()
turtle.forward(480)
turtle.right(90)
turtle.forward(320)
turtle.right(90)
turtle.forward(480)
turtle.right(90)
turtle.forward(320)
turtle.end_fill()
#画大五角星
turtle.right(90)
turtle.goto(-72,24)
turtle.color("yellow","yellow")
turtle.begin_fill()
for _ in range(5):
turtle.forward(84)
turtle.right(144)
turtle.end_fill()
#画五个小五角星
turtle.penup()
turtle.goto(20,90)
turtle.pendown()
turtle.begin_fill()
for _ in range(5):
turtle.forward(35)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(70,56)
turtle.pendown()
turtle.begin_fill()
for _ in range(5):
turtle.forward(35)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(70,-8)
turtle.pendown()
turtle.begin_fill()
for _ in range(5):
turtle.forward(35)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(20,-40)
turtle.pendown()
turtle.begin_fill()
for _ in range(5):
turtle.forward(35)
turtle.right(144)
turtle.end_fill()
运行结果: