Python turtle 库 自学5

这篇博客介绍了如何使用Python的Turtle库结合递归来绘制旋转圆形和分形树。在旋转圆形的示例中,通过递归调用来改变圆的半径并调整角度,生成随机颜色,从而形成复杂的图案。而在分形树的绘制中,递归用于创建树枝结构,每条树枝会分裂成更小的树枝,同时改变颜色和长度,呈现出美丽的分形效果。这两个实例展示了编程与艺术的巧妙结合。
摘要由CSDN通过智能技术生成

1、递归及旋转圆形的画法

import turtle
import random

pen = turtle.Turtle()
# 创建一支画笔 pen
turtle.colormode(255)
# 先设置 colormode 选项
pen.speed(0)
# 将速度设置为最快


def circle(radius):
    if radius == 200:
        return
    else:
        pen.color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
        pen.circle(radius)
        pen.right(2)
        circle(radius + 1)


circle(50)

turtle.done()
# 让屏幕暂停

2、递归及分形树的画法

import turtle

pen = turtle.Turtle()
# 创建一支画笔 pen
turtle.colormode(255)
# 先设置 colormode 选项
pen.speed(0)
# 将速度设置为最快

r, g, b = 0, 0, 0
length = 120
# 树干的长度
pen_size = 14
# 画笔的粗细
pen.pensize(pen_size)
# 设置画笔的粗细为 pen_size
pen.penup()
# 提起画笔
pen.left(90)
# 画笔左转 90°
pen.backward(length)
# 画笔倒退树干的长度
pen.pendown()
# 放下画笔
pen.forward(length)
# 画出树干


def draw_tree(l, lv):
    # 第一次调用 l = 120
    l = l * 3/4
    # 改变树干长度
    size = pen.pensize()
    # 当前画笔的粗细返回给 size 变量
    pen.pensize(size * 3/4)
    # 改变画笔的粗细

    # 改变颜色
    global r, g, b
    r += 1
    g += 2
    b += 3
    pen.color(r % 200, g % 200, b % 200)

    # 左边枝干
    pen.left(45)
    pen.forward(l)
    # 左边枝干的递归
    if lv < 14:
        draw_tree(l, lv + 1)
    pen.backward(l)
    pen.right(90)

    # 右边枝干
    pen.forward(l)
    # 右边枝干的递归
    if lv < 14:
        draw_tree(l, lv + 1)
    pen.backward(l)
    pen.left(45)
    pen.pensize(size)


draw_tree(length, 13)
# length = 120
turtle.done()
# 让屏幕暂停
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我来晚了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值