1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于谢尔宾斯基三角形(Sierpinski triangle)的讲解

关于谢尔宾斯基三角形(Sierpinski triangle)的讲解

时间:2022-10-12 02:35:23

相关推荐

关于谢尔宾斯基三角形(Sierpinski triangle)的讲解

谢尔宾斯基三角形(Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在19提出。它是自相似集的例子。它的豪斯多夫维是log(3)/log(2) ≈ 1.585。

谢尔宾斯基(Sierpinski)三角形

1.画一个(正)三角形

2.连接三边的中点,分为四个三角形

3.保留中间的三角形

4.对其余的三个小三角形,重复上述步骤

代码如下:

# 舞台自动重置,kpen和p可直接使用.p.width(1)p.speed(10)p.lt(30)def get_midpoint(a,b):ax,ay=abx,by=breturn(ax+bx)/2,(ay+by)/2def draw_triangle(a,b,c):ax,ay=abx,by=bcx,cy=cp.penup()p.goto(ax,ay)p.pendown()p.goto(bx,by)p.goto(cx,cy)p.goto(ax,ay)p.penup()def draw_sierpinski(triangle,depth):""":param triangle:指定三角形三个顶点坐标,示例:((ax,ay),(bx,by),(cx,cy))。:param depth:指定层数"""a,b,c=triangledraw_triangle(a,b,c)if depth==0:returnelse:d=get_midpoint(a,b)e=get_midpoint(b,c)f=get_midpoint(c,a)draw_sierpinski([a,d,f],depth-1)draw_sierpinski([d,b,e],depth-1)draw_sierpinski([f,e,c],depth-1)triangle=[[-200,-100],[0,200],[200,-100]]draw_sierpinski(triangle,5)p.hide()p.draw()

在这里我们也用到了递归函数,它有两个特点:一是有退出机制,二是自己调用自己(recursion)就是在运行的时候调用自己,构成递归需具备的两个条件:一个就是调用自己,一个是有终止的条件。这两个条件必须同时具备,且一个都不能少。并且终止条件必须实在递归最开始的地方。这个知识点我在前面已经讲过了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。