我是靠谱客的博主 温柔宝贝,最近开发中收集的这篇文章主要介绍递归科赫雪花,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  逐行分析一下科赫雪花

import turtle

def koch(size, n):                 #定义一个函数,(参数,变量)
    if n==0:                       #条件分支,
      turtle.fd(size)              #当n=0时,执行画笔向前移动size距离。
    else:                          #n!0时,
      for angle in [0,60,-120,60]: #遍历循环,将[]内的元素赋予angle.
          turtle.left(angle)       #向左旋转画笔方向,角度为angle的值。
          koch(size/3,n-1)         #调用koch函数,行成递归链条。以size/3的单段
                                   #长度,完成for..in循环,并绘制图像,递归到n-1=0.

  上面这一段感觉就是最难理解的部分了,这里不妨认为n=1,此时函数运行else分支,通过一个for循环,将调整画笔的朝向,而每次调整朝向后,将运行一次koch函数,这时koch(size/3,n-1)中,n-1的值为0,将执行n==0 的条件分支,此时画笔将先前移动size/3的距离,共进行4次移动。

def main(a):                #定义函数main
    turtle.setup(600,600)   #画布尺寸
    turtle.penup()          #抬起笔
    turtle.goto(-200, 100)  #移动画笔到(-200,100)坐标
    turtle.pendown()        #落下笔
    turtle.pensize(2)       #调节画笔尺寸
    koch(400,a)             #调用函数koch,给size赋值为400,并将阶数a带入到koch函数中;
    turtle.right(120)       #完成第一段科赫线段绘制后,调整画笔角度,向右旋转120°.
    koch(400,a)             #再次调用函数koch,绘制第二段科赫线段;
    turtle.right(120)       #完成第二段科赫线段绘制后,调整画笔角度,向右旋转120°.
    koch(400,a)             #再次调用函数koch,绘制第三段科赫线段;
    turtle.hideturtle()     #隐藏海龟显示.

以上就是重复上次koch函数,形成一个三角形闭环。看注释吧,不难理解。

try:                                       #异常处理语句
    a = eval(input("请输入科赫曲线的阶: "))  #给a赋值,作为koch函数的初始n值.
    main(a)                                #程序入口,执行函数main.
    
except:                                    #异常处理语句
    print("输入错误")

  最后就是程序的输入和输出,这边通过一个异常处理模块,屏蔽了一些会发生报错的输入。

最后

以上就是温柔宝贝为你收集整理的递归科赫雪花的全部内容,希望文章能够帮你解决递归科赫雪花所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部