python-turtle

今天有兴致,用turtle画了几个图,递归画图简直是强迫症患者的福音。

螺旋线

def draw(line):
    if line>250:
        return
    t.color(color[line%4])#color=['red','yellow','blue','orange']
    t.fd(line)
    t.left(92)
    draw(line+1)

效果图:
在这里插入图片描述

谢尔宾斯基三角形

def draw_sierpinski(a,b,c,depth):
    draw_triangle(a, b, c,depth)
    if depth==0:
        return 
    d=get_midpoint(a, b)#求出三角形每条边上的中点
    e=get_midpoint(b, c)
    f=get_midpoint(c, a)
    #draw_sierpinski(d,e,f,depth-1)
    draw_sierpinski(f,e,c,depth-1)
    draw_sierpinski(a,d,f,depth-1)
    draw_sierpinski(d,b,e,depth-1)

效果图:
在这里插入图片描述

谢尔宾斯基正方形地毯

5层,画了2小时吧。

def draw_sierpinski_fang(a,b,c,d,depth):#这里的a,b,c,d都是列表
    draw_fang(a, b, c, d,depth)
    if depth==0:
        return 
    e=get_point(a, b, 1/3)#求出正方形每条边上1/3和2/3处的点
    f=get_point(a, b, 2/3)
    #print(e,f)
    g=get_point(b, c, 1/3)
    h=get_point(b, c, 2/3)
    #print(g,h)
    i=get_point(c, d, 1/3)
    j=get_point(c, d, 2/3)
    #print(i,j)
    k=get_point(d, a, 1/3)
    l=get_point(d, a, 2/3)
    #print(k,l)
    draw_sierpinski_fang(a,e,[e[0],l[1]],l,depth-1)
    draw_sierpinski_fang(e,f,[f[0],l[1]],[e[0],l[1]],depth-1)
    draw_sierpinski_fang(f,b,g,[f[0],g[1]],depth-1)
    draw_sierpinski_fang(l,[e[0],l[1]],[e[0],k[1]],k,depth-1)
    draw_sierpinski_fang([f[0],g[1]],g,h,[f[0],h[1]],depth-1)
    draw_sierpinski_fang(k,[e[0],k[1]],j,d,depth-1)
    draw_sierpinski_fang([e[0],k[1]],[f[0],k[1]],i,j,depth-1)
    draw_sierpinski_fang([f[0],h[1]],h,c,i,depth-1)

效果图:

在这里插入图片描述

科赫雪花

def koch(size,n):
    if n==0:
        t.fd(size)
        return
    for i in [0,60,-120,60]:
        t.lt(i)
        koch(size/3,n-1)

效果图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值