python 海龟 希尔伯特曲线双递归绘图

本文介绍了一种使用Python海龟绘图模块绘制希尔伯特曲线的方法,并提供了递归实现的具体代码示例。希尔伯特曲线是一种空间填充曲线,能够连续地覆盖整个二维空间。文中通过定义左右旋递归函数来绘制不同阶数的希尔伯特曲线。

python 海龟 希尔伯特曲线双递归绘图

示意图

希尔伯特曲线双递归原理示意图

这个递归在从0阶到1阶的过程中依然成立。
0阶只有一个箭头方向,没有长度,所以可以pass;
1阶左(右)旋图就是简单的u形(n形)的样子。

代码

from turtle import *

#左旋
def hilL(n):
    if n==0:
        pass
    if n>0:
        right(90)
        hilR(n-1)
        forward(l)
        left(90)
        hilL(n-1)
        forward(l)
        hilL(n-1)
        left(90)
        forward(l)
        hilR(n-1)
        right(90)
#右旋
def hilR(n):
    if n==0:
        pass
    if n>0:
        left(90)
        hilL(n-1)
        forward(l)
        right(90)
        hilR(n-1)
        forward(l)
        hilR(n-1)
        right(90)
        forward(l)
        hilL(n-1)
        left(90)

#笔刷宽度
width(3)
#步幅
l=15
#曲线的阶数,随便写个正整数,用hilR也行,就是方向不一样
hilL(4)

done()

运行

运行中
完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值