首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python算法分析与设计实验:科赫雪花实验

python算法分析与设计实验:科赫雪花实验

作者头像
用户7886150
修改2020-12-30 15:48:20
修改2020-12-30 15:48:20
1.8K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 科赫曲线或科赫雪花 Python

算法分析与设计实验:科赫雪花实验 一、实验目的 1、熟悉python编程环境,包括程序安装 2、熟悉python基本语法 3、递归算法程序分析与调试 

二、实验工具 Win10操作系统、python3.7编译环境、IDLE编译器 

三、实验内容 本次实验是利用递归算法,用python中的绘图库turtle,实现画出科赫雪花。雪花曲线的构造从一个正三角形开始,把每条边分成三等份,然后以各边的中间长度为底边,分别向外作正三角形,再把“底边”线段抹掉,这样就得到一个六角形,它共有12条边,再把每条边分成三等份,以各中间部分的长度为底边,向外作正三角形后,抹掉底边线段,反复进行这一过程,就会得到有个“雪花”样子的科赫曲线。 

四、实验过程 本实验采用递归算法完成曲线绘制:如果n=0,直接画出长度为L的直线。如果n=1(第一次迭代),画出长度为L/3的线段;画笔向左转60度再画长度为L/3长的线段;画笔向右转120度画长度为L/3长的线段;画笔再向左转60度画出长度为L/3的线段。如果n>1,第n次迭代相当于:第n-1次迭代;画笔左转60度;n-1次迭代;画笔右转120度;第n-1次迭代;画笔左转60度;第n-1次迭代。本次实验设n=3,用for遍历循环角度,在最外层的循环执行后,再调用下一阶及相应的长度。程序代码如下: 

import turtle as t

def koch(size, order):

    if order == 0:

        t.forward(size)

    else:

        for angle in [0, 60, -120, 60]:

            t.left(angle)

            koch(size/3, order-1)

def main():

    t.setup(800, 800)

    t.penup()

    t.goto(-120, 100)

    t.pendown()

    t.pensize(2)

    t.pencolor('green')

    koch(300, 3)

    t.right(120)

    koch(300, 3)

    t.right(120)

    koch(300, 3)

    t.done()

    t.hideturtle()

main()

五、实验结果与分析

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档