Python中的turtle库简介(绘制五角星和分形树)

turtle库:(形状绘制函数)

turtle最早来自于LOGO语言,是专门用于小孩子学习编程的,通过编程模拟一只turtle(海龟)在画板上爬行绘制图案,后来很多高级语言都移植了海龟绘图,python从2.6之后也将turtle库加入了其内部库中。由于是内部库,使用import turtle语句就能引入turtle库,绘图主要有以下几个步骤:设置画板、设置画笔、控制海龟移动绘制图形、色彩填充。


turtle库方法:

turtle.forward(distance)/ turtle.fd(distance):画笔向前移动distance距离

>>> turtle.position()
(0.00,0.00)
>>> turtle.forward(25)
>>> turtle.position()
(25.00,0.00)
>>> turtle.forward(-75)
>>> turtle.position()
(-50.00,0.00)

turtle.backward(distance)/ turtle.back (distance)/ turtle.bk (distance):画笔向后移动distance距离

>>> turtle.position()
(0.00,0.00)
>>> turtle.backward(30)
>>> turtle.position()
(-30.00,0.00)

turtle.right(degree)/ turtle.rt(degree):绘制方向向右旋转degree度

>>> turtle.heading()
22.0
>>> turtle.right(45)
>>> turtle.heading()
337.0

turtle.left(degree)/ turtle.lt(degree):绘制方向向左旋转degree度

>>> turtle.heading()
22.0
>>> turtle.left(45)
>>> turtle.heading()
67.0
turtle.exitonclick()点击关闭图形窗口
turtle.penup()抬起画笔,之后移动画笔不绘制图片
turtle.pendown()落下画笔,之后移动画笔绘制图片
turtle.pensize()设置画笔宽度
turtle.penup()设置画笔颜色,常用的颜色

绘制五角星和分形树

绘制五角星:

import turtle

def draw_recursive_pentagram(size):
    """迭代绘制五角星"""

    #计数器
    count = 1
    while count <= 5:
        turtle.forward(size)
        turtle.right(144)
        count += 1

    #五角星绘制完成,更新参数
    size += 50
    if size <= 200:
        draw_recursive_pentagram(size)

def main():
    """主函数"""
    turtle.penup()
    turtle.backward(100)
    turtle.pendown()
    turtle.pensize(4)
    turtle.color("red")

    size = 50
    draw_recursive_pentagram(size)

    turtle.exitonclick()

if __name__ == "__main__" :
	main()

上述代码执行的结果

绘制一颗树:

import turtle

def draw_branch(branch_length):
    """
    绘制分形树
    """
    if branch_length >= 5:
        #绘制右侧树枝
        turtle.forward(branch_length)
        turtle.right(20)
        draw_branch(branch_length - 5)

        #绘制左侧树枝
        turtle.left(40)
        draw_branch(branch_length - 5)

        #返回根节点
        turtle.right(20)
        turtle.backward(branch_length)


def main():
    """主函数"""

    turtle.penup()
    turtle.backward(50)
    turtle.pendown()
    turtle.left(90)
    turtle.pencolor("orange")
    draw_branch(50)

    turtle.exitonclick()



if __name__ == "__main__" :
    main()

上述代码生成的分形树


详细的turtle库说明请参照官网说明:
https://docs.python.org/3.7/library/turtle.html#overview-of-available-turtle-and-screen-methods


“”"***笔者的话:最近一直在跟随小象学院在学习Python中的库和函数,都是一些基础的知识。整理一下笔记也算是巩固复习了。希望对初学Python的人有所帮助。FIGHTING...(热烈欢迎大家批评指正,互相讨论)
"Consider everything deeply but still remain fearless." --《少年时代》
***"""

#import ... 使用函数需要 .函数 不会出现函数重名问题 #from .... import* 则可以直接使用函数名 #import .... as ....使代码量更少且不容易重名 import turtle #设置窗体大小和位置,4个参数后两个可选为左上角坐标,setup函数不是必须的 turtle.setup(650,350,200,200) #绝对坐标 turtle.goto(x,y)海龟一开始在画面的心(0,0),到达(x,y) #相对坐标 海龟当前运行的方向是前进方向 turtle.fd(d) 或turtle.forward(d) #后方是后退方向 turtle.bk(d) #左侧是左侧方向 turtle.circle(r,angle)以左侧的某个点为圆心向左侧 #右侧是右侧方向 # 画笔控制函数pen... # 一般成对出现: turtle.penup() 别名 turtle.pu() 不画 # turtle.pendown() turtle.pd() 画 # #画笔宽度设置后一直有效 turtle.pensize(width) 或 turtle.width(width) #画笔颜色 turtle.pencolor("purple")或 turtle.pencolor(0.63,0.13,0.94) 或 turtle.pencolor((0.63,0.13,0.94)) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") #绝对角度 turtle角度坐标体系,类似数学平面直角坐标系,turtle.seth(angle)改变海龟行进角度,但不行进 或turtle.setheading() #相对角度 turtle.left(angle)向左改变角度 turtle.right(angle)向右改变角度 turtle.seth(-40) #turtle.circle(r,extent=None)绘制弧 默认圆心是左侧r距离的位置,弧度为360 -r右侧 for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) turtle.circle(40,80/2) turtle.fd(40) turtle.circle(16,180) turtle.fd(40*2/3) turtle.done()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值