nf使用 Python 的 turtle 模块画图

Python 内置了一个名叫 turtle 的模块。我们可以通过这个模块,来画出各种各样的图片。


在这篇文章里面,我会介绍 5 种通过递归方式画出的图案,希望大家喜欢!

————————————————————————

第一个是

科赫曲线Courbe de Koch/Koch curve

首先看看效果图:


(图样不按比例)

我们可以看到科赫曲线是慢慢细分,最终获得比较复杂的图案。

那么在 Python 里面我们应该怎么用 turtle 画出呢?

from turtle import *
def draw1(n,l):
    if(n ==0):
        forward(l)
    else:
        for angle in (60,-120,60,0):
            draw1(n-1,l/3)
            left(angle)
(上述代码在 Python 3.4.0 测试通过)


# @param n: 科赫曲线细分度

# @param l : 科赫曲线每段长度

# 参考 n / l  : draw1(3, 300)


其中,n 是科赫曲线的「细分度」。

当 n = 0 的时候,科赫曲线是一条直线,

当 n = 1 的时候,科赫曲线会在中间 1/3 的位置画出一个边长为 l/3 等边三角形,

……


由此可以推出,当 n→∞的时候,科赫曲线的边→∞.


————————————————————————

第二个是

科赫雪花flocon de Koch / Koch snowflake

继续我们先来看效果图:

以上就是科赫雪花的图样(图样不按比例)

可以看出,其实科赫雪花就是由三条科赫曲线合成的。
所以我们可以很简单地使用我们之前已经用过科赫曲线来制作科赫雪花。
代码如下:
def draw1(n,l):#本函数需要上文提到的draw0(n,l)
    if(n ==0):
        forward(l)
    else:
        for angle in (60,-120,60,0):
            draw1(n-1,l/3)
            left(angle)
(上述代码在 Python 3.4.0 测试通过)

# @param n: 科赫雪花细分度
# @param l : 科赫雪花每段长度

在这里我们可以很简单地看出,其实科赫雪花就是科赫曲线以 60° 组合而成的图案。

很简单吧,下面就将科赫曲线和科赫雪花改一下,以产生新的图案。

TO BE CONTINUE...
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值