画布
- 导入turtle模块
import turtle
- 定义画布
窗口边框包围着的白色区域被称为画布,画布中间的小箭头被称为海龟
t = turtle.Turtle() #打开一个窗口,中间带有一个小箭头
turtle.mainloop() # 也可以使用turtle.done()
#开始事件循环,让打开的窗口等待下一步动作
或者可以通过以下两种方法均可创建画布
window = turtle.Screen() #创建一个窗口
window.title("海龟图") #设置窗口标题
window.bgcolor("orange") #设置窗口背景颜色
t = turtle.Turtle()
window.mainloop()
turtle.setup(640, 480) #设置窗口大小和位置
turtle.title("海龟图")
turtle.bgcolor("orange")
t = turtle.Turtle()
turtle.mainloop()
setup(width, height, startx=None, starty=None)分别对于画布宽度,画布高度,开始点的x坐标和y坐标。
海龟
- 海龟状态:
隐藏:hideturtle()或ht()
显示:showturtle()或st()
判断是否显示:isvisible()
返回True/False
- 海龟运动
朝箭头方向移动distance像素: forward(distance)或fd(distance)
朝箭头反方向移动distance像素: backward(distance)或back(distance)或bk(distance)
海龟移动的速度:speed(speed=None)
如果没有给出参数,则返回当前速度。speed取0-10内整数。
向左旋转(逆时针)指定角度: angle:left(angle)或lt(angle)
向右旋转(顺时针)指定角度: right(angle)或rt(angle)
将海龟的方向设置为to_angle: setheading(to_angle)或seth(to_angle)
返回海龟当前指向的方向::heading()
将海龟移动到坐标位置(x, y),不改变海龟的方向:
如果画笔处于放下状态,则绘制线段。setposition(x, y=None)或setpos(x, y=None)或goto(x, y=None)
返回当前坐标位置: positon()或pos()
设置海龟位置: setx(x) sety(y)
返回海龟位置: xcor() ycor()
移动到坐标原点其方向设置为初始方向: home()
撤销:undo()
画圆:circle(radius, extent=None, steps=None)
参数radius表示圆半径,参数extent(可选)表示弧度(单位度),参数steps(可选)表示边数。
画带颜色的圆:dot(size=None, *color)
画笔
- 画笔状态
抬起画笔,移动时不绘制图形:penup()或pu()或up()
放下画笔,移动时绘制图形:pendown()或pd()或down()
设置画笔宽度,参数width表示宽度:
pensize(width=None)或width(width=None)
- 颜色控制
判断当前画笔是否放下:isdown
- 填充
开始填充,在绘制填充图形前调用:begin_fill()
结束填充。在绘制填充图形后调用:end_fill()
判断当前是否处于填充状态,是返回True,否返回False:filling()
- 颜色控制
设置颜色模式:colormode(cmode=None)
设置画笔颜色:pencolor(colorstring/(r, g, b))
设置填充颜色:fillcolor(*args)
设置画笔和填充颜色:color(*args)
- 其他
reset()
,清除画布,将海龟状态和位置重置为起始默认值。
clear()
,清除画布,海龟当前状态和位置不受影响。
write(arg, move=False, align="left", font=("Arial", 8, "normal"))
,在海龟当前位置处按指定的对齐方式和字体绘制文本。
举例
# 绘制矩形
import turtle
def draw_rectangle(t, x, y, w, h, color = "black"):
'''
绘制矩形函数
t —— 海龟对象
x, y —— 矩形左上角坐标
width, height —— 矩形宽度和高度
color —— 矩形边框颜色(默认情况下为black黑色)
'''
t.pencolor(color) # 设置画笔颜色
t.up() # 抬起画笔
t.goto(x, y) # 移动到矩形左上角
t.down() # 放下画笔
t.goto(x + w, y) # 移动到矩形右上角,并绘制矩形上边
t.goto(x + w, y - h) # 移动到矩形右下角,并绘制矩形右边
t.goto(x, y - h) # 移动至矩形左下角,并绘制矩形下边
t.goto(x, y) # 移动至矩形左上角,并绘制矩形左边
def main():
turtle.setup(640, 480) # 设置窗口大小
turtle.title("绘制矩形") # 设置窗口标题
t = turtle.Turtle() # 建立海龟对象
t.hideturtle() # 隐藏海龟
t.pensize(10) # 设置线宽为10像素
draw_rectangle(t, -100, 100, 200, 200, "red") # 调用绘矩形制函数
turtle.mainloop()
main()
# 绘制奥林匹克环标志
import turtle
def draw_torus(t, x, y, radius, color):
'''
绘制圆环函数
t —— 海龟对象
x, y —— 绘制圆环的起始位置(圆心正下方)
radius —— 圆环半径
color —— 圆环边框颜色
'''
t.pencolor(color) # 设置画笔颜色
t.up() # 抬起画笔
t.goto(x, y) # 移动到绘制位置
t.down() # 放下画笔
t.circle(radius) # 绘制圆
def main():
turtle.setup(640, 480)
turtle.title("绘制奥林匹克环标志")
t = turtle.Turtle() # 建立海龟对象
t.hideturtle() # 隐藏海龟
t.pensize(5) # 设置线宽为5像素
draw_torus(t, -110, -25, 45, "blue") # 绘制蓝色环
draw_torus(t, 0, -25, 45, "black") # 绘制黑色环
draw_torus(t, 110, -25, 45, "red") # 绘制红色环
draw_torus(t, -55, -75, 45, "yellow") # 绘制黄色环
draw_torus(t, 55, -75, 45, "green") # 绘制绿色环
turtle.mainloop()
main()