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.画笔运动命令
setheading(angle)设置当前朝向为angle度命令
说明
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)
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆
extent(弧度) (optional)
steps (optional) :做半径为radius的圆的内切正多边形,多边形边数为steps
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”)并执行重置。如果没有给出模式,则返回当前模式。
模式
初始龟标题
正角度
standard
向右
逆时针
logo
向上
顺时针
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()
运行结果: