python turtle 画树

这篇博客介绍了如何利用Python的turtle模块绘制出具有随机枝条长度的树形图形,每次运行程序都会产生独一无二的树图效果。
部署运行你感兴趣的模型镜像

绘制过程:

    画右子树

    返回节点

    画左子树

    返回节点

树图结果:

simple tree

from turtle import *

def draw_tree(length):
    if length >= 5:
        # draw trunk of length
        forward(length)
        # turn right 20 degree
        right(20)
        # draw right child tree, child tree with length (length-10)
        draw_tree(length - 10)
        # turn left 40 degree
        left(40)
        # draw left child tree
        draw_tree(length-10)
        # turn right 20 degree
        right(20)
        # return initial position
        backward(length)

def main():
    # set color
    color('green')
    # set turtle speed, 0 is the fastest 1->10 from slow to fast
    speed(0)

    # adjust initial position of the tree
    left(90)
    penup()
    backward(150)
    pendown()

    # draw tree
    draw_tree(80)
    exitonclick()

if __name__ == '__main__':
    main()

下面我们画一个具有随机枝条长度的树,每次执行的结果都不一定一样:

tree_with_random_branch

具体代码如下:

from turtle import *
from random import randint

def random_delta_branch(start=6, end=15):
    return randint(start, end)

def draw_tree(trunk_length, smallest_branch):
    delta_branch = random_delta_branch()
    if trunk_length >= smallest_branch:
        forward(trunk_length)
        right(20)
        draw_tree(trunk_length - delta_branch, smallest_branch)
        left(40)
        draw_tree(trunk_length - delta_branch, smallest_branch)
        right(20)
        backward(trunk_length)


def main():
    # set color
    color('green')
    # set turtle speed, 0 is the fastest 1->10 from slow to fast
    speed(0)

    # adjust initial position of the tree
    left(90)
    penup()
    backward(150)
    pendown()

    # draw tree
    draw_tree(80, 5)
    exitonclick()

if __name__ == '__main__':
    main()
    

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值