热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python用科赫迭代正方形_python函数和代码复用——迭代练习:科赫雪花绘制

版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https:bl

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/PigeonKiing/article/details/102523569

科赫雪花

科赫雪花是一个分形几何图形,分形几何是一种迭代的几何图形,广泛存在于自然界。

科赫雪花是由正三角形的三条科赫曲线构成的。

科赫曲线

20191012164906714.png

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BpZ2VvbktpaW5n,size_16,color_FFFFFF,t_70

问题解析

要绘制一个这样的科赫雪花,首先我们要绘制一条符合要求的科赫曲线。

因此问题就拆分成:

绘制一条科赫曲线

将三条科赫曲线组成正三角形

完成上述两个步骤即可完成科赫雪花的绘制。

绘制科赫曲线

20191012164906714.png

我们看一下科赫曲线,它是一个很明显的迭代过程,

函数:定义一个函数,实现绘制科赫曲线的功能;

条件:判断是几阶的科赫曲线;

基例:如果是0阶曲线,那么直接绘制一条直线即可;

链条:如果是n阶科赫曲线,那么需要绘制4段(n-1)阶的科赫曲线

科赫曲线代码

def Kole(lenth,n):

if n==0: #基例

t.fd(lenth)

else: #链条

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

t.left(i)

Kole(1/3*lenth,n-1)

科赫雪花代码

# 5_snowflower.py

import turtle as t #绘制科赫曲线

def Kole(lenth,n):

if n==0:

t.fd(lenth)

else:

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

t.left(i)

Kole(1/3*lenth,n-1)

def main(): #绘制科赫雪花

t.setup(800,600)

t.hideturtle()

t.pensize(5)

t.pencolor("green")

t.pu()

t.goto(-300,0)

t.pd()

lenth=200

n=3

for i in range(3):

Kole(lenth,n)

t.left(-120)

main()

t.done()

总结

这道题其实不是很难,只需要掌握好迭代的方法,按照基本的迭代思路对问题求解,去实现功能即可。

有兴趣的朋友可以看看我的其他博文的练习题哦。如果对文章有疑问请留言!



推荐阅读
author-avatar
手浪用户2502939427_143
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有