当前位置: 首页 > 工具软件 > Turtle > 使用案例 >

turtle库

翟聪
2023-12-01

(1)turtle库的概述

turtle库是python重要的标准库之一,它能够进行简单的图形绘制。turtle库绘制图形有一个基本的框架,以窗体中心为坐标原点建立平面直角坐标系。

(2)turtle库绘图的基本方法

1)窗体函数setup(width,height,startx,starty)

setup()函数用于设置画布的大小和位置,参数包括画布窗口宽,高,窗口在屏幕的起始位置和垂直位置

例如:setup(640,500,350,350)表示在桌面(350,350)位置开始创建640*500大小的画布窗体

2)画笔状态函数

penup():没有参数,作用是提起画笔后移动画笔不会再绘制图形

pendown():没有参数,作用是放下画笔后移动画笔可以再绘制图形

pensize(width):参数是所要设置画笔的宽度,无参数时返回当前的画笔宽度

pencolor(color):参数用来设置画笔的颜色,无参数时返回当前画笔的颜色

color():设置画笔和填充颜色

begin_fill():在填充图形之前调用

end_fill():在填充图形之后调用,表示填充颜色结束

filling():返回填充的状态,True表示已填充,False表示没有填充

clear():清空当前窗口,但不改变当前画笔的位置

reset():清空当前窗口,并把所有状态重置为默认值

screensize():设置画布的宽,高,背景颜色

hideturtle():隐藏画笔的turtle形状

showturtle():显示画笔的turtle形状

isvisible():如果turtle可见,返回True

write():输出中文标签,可选的参数有对齐方式align(left,center,right),font元组形字体设置(字体,字号,字形)

3)画笔运动函数

forward(distance):把画笔当前方向前进distance距离。

backward(distance):当前的相反方向后退distance距离

right(angle):向右旋转angle角度

left(angle):向左旋转angle角度

goto(x,y)把当前坐标移动到坐标(x,y)处

seth(to_angle):设置画笔的当前朝向为to_angle角度,该角度为绝对方向角度值

home():设置当前画笔位置为原点,向右为正

circle(radius,extent=None):根据半径radius绘制角度为extent的图形;当不给extent参数或者extent=None时,绘制整个圆形

eg1:绘制一个五角星

from turtle import *
fillcolor("red")
begin_fill()
for i in range(5):
    fd(200)
    right(144)
end_fill()

eg2:使用turtle库绘制树形

from turtle import Turtle, mainloop
from time import clock
def tree(plist,l,a,f):
    if l>3:
        lst=[]
        for p in plist:
            p.forward(l)
            q=p.clone()
            p.left(a)
            q.right(a)
            lst.append(p)
            lst.append(q)
        for x in tree(lst,1*f,a,f):
            yield None
def maketree():
    p=Turtle()
    p.setundobuffer(None)
    p.hideturtle()
    p.speed(0)
    p.getscreen().tracer(30,0)
    p.left(90)
    p.penup()
    p.forward(-210)
    p.pendown()
    t=tree([p],200,65,0.6375)
    for x in t:
        pass
    print(len(p.getscreen().turtles()))
def main():
    a=clock()
    maketree()
    b=clock()
    return "done:%.2f sec."%(b-a)
if __name__=="__main__":
    msg=main()
    print(msg)
    mainloop()

 类似资料: