1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python实验舱谢尔宾斯基三角形绘制教程

Python实验舱谢尔宾斯基三角形绘制教程

时间:2018-11-29 00:12:49

相关推荐

Python实验舱谢尔宾斯基三角形绘制教程

三角形,大家应该再熟悉不过了。

上图是一个由四个小三角形拼成的大三角形,也叫谢尔宾斯基三角形。

谢尔宾斯基三角形还能继续画下去:

2阶(上图是1阶):

3阶:

5阶:

8阶:

(小编奉劝一句:不要试图挑战你的电脑)

接下来,就要开始代码讲解了

一,起始代码

p.width(3).speed(10)#1#2

第1条 前面一半的代码是调整笔的大小,后面一半的代码是调整笔移动的速度,“3”和“10”这两个数值是可以自行调整的

第2条 空行(目的:为区分两段代码,方便查看)

二,定义函数midpoint

def get_midpoint(a,b): #3ax,ay=a #4bx,by=b #5return (ax+bx)/2,(ay+by)/2 #6

第3条 定义函数get_midpoint(a,b),第4条至第6条即函数的定义

第4条 将ax,bx赋值a

第5条 将bx,by赋值b

第6条 返回ax+bx的1/2,ay,by的1/2

三,定义函数draw_triangle

def draw_triangle(a,b,c): #7ax,ay=a #8bx,by=b #9cx,cy=c #10p.penup() #11p.goto(ax,ay) #12p.pendown() #13p.goto(bx,by) #14p.goto(cx,cy) #15p.goto(ax,ay) #16p.penup() #17

第7条定义函数draw_triangle(a,b,c),第8条至第17条即函数的定义

第8条 将ax,ay赋值a

第9条 将bx,by赋值b

第10条 将cx,cy赋值c

第11条 抬笔

第12条 前进ax,ay

第13条 落笔

第14条 前进bx,by

第15条 前进cx,cy

第16条 前进ax,ay

第17条 抬笔

四,定义函数draw_sierpinski(triangle,depth)

def draw_sierpinski(triangle,depth): #18""" #注释,下面不讲解,自己看:param triangle: 指定三角形三个顶点坐标,示例:((ax,ay),(bx,by),(cx,cy))。:param depth: 指定层数""" #下面就不是注释了a,b,c=triangle #19draw_triangle(a,b,c) #20if depth==0: #21return #22else: #23d=get_midpoint(a,b) #24e=get_midpoint(b,c) #25f=get_midpoint(c,a) #26draw_sierpinski([a,d,f],depth-1) #27draw_sierpinski([d,b,e],depth-1) #28draw_sierpinski([f,e,c],depth-1) #29

第18条定义函数draw_sierpinski(triangle,depth),第19条至第20条即函数的定义

第19条 将a,b,c,赋值函数draw_triangle

第20条 运行draw_triangle(a,b,c)

第21条如果depth等于0成立,那么执行第22条代码

第22条 返回,即停止运行函数draw_sierpinski

第23条 接第21条,如果depth等于0不成立,那么执行第24条至第29条代码

第24条 将d赋值函数get_midpoint(a,b)

第25条 将e赋值函数get_midpoint(b,c)

第26条 将f赋值函数get_midpoint(c,a)

第27条 运行函数draw_sierpinski([a,d,f],depth-1)

第28条 运行函数draw_sierpinski([d,b,e],depth-1)

第29条 运行函数draw_sierpinski([f,e,c],depth-1)

五,执行函数

#30triangle=[[-200,-100],[0,200],[200,-100]] #31draw_sierpinski(triangle,1) #32#33

第30条 同第2条

第31条 将triangle赋值[[-200,-100],[0,200],[200,-100]]

第32条 执行函数draw_sierpinski(triangle,1)

第33条 同第2条

六,结束代码

p.hide() #34p.draw() #35

第34条 隐藏笔

第35条 结束

以上就是小编为大家整理的谢尔宾斯基三角形的绘制教程了,制作不易,发条评论再走吧

Bye~

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