1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python递归三角形_python 谢尔宾斯基三角形的递归实现

python递归三角形_python 谢尔宾斯基三角形的递归实现

时间:2021-12-25 12:04:01

相关推荐

python递归三角形_python 谢尔宾斯基三角形的递归实现

import turtle

def draw(points):

# 根据三个坐标,画一个三角形

t.penup()

t.goto(points['left'])

t.pendown()

t.goto(points['top'])

t.goto(points['right'])

t.goto(points['left'])

def getMid(p1,p2):

# 获取两个坐标的中点的坐标

return (p1[0]+p2[0])/2,(p1[1]+p2[1])/2

def sierpinski(degree,points):

draw(points)

if degree > 0:

# 以原三角形左边底角坐标为起点,画一个边长为原来三角形边长一半的等边三角形

sierpinski(degree-1,{'left':points['left'],'top':getMid(points['left'],points['top']),'right':getMid(points['left'],points['right']) })

# 以原三角形左边中点坐标为起点,画一个边长为原来三角形边长一半的等边三角形

sierpinski(degree-1,{'left':getMid(points['left'],points['top']),'top':points['top'],'right':getMid(points['top'],points['right']) })

# 以原三角形底边中点坐标为起点,画一个边长为原来三角形边长一半的等边三角形

sierpinski(degree-1,{'left':getMid(points['left'],points['right']),'top':getMid(points['top'],points['right']),'right':points['right'] })

t = turtle.Turtle()

t.speed(3) # 画笔速度

# 初始的三角形的三个顶点

points = {'left':(-200,-100),'top':(0,200),'right':(200,-100)}

sierpinski(3,points)

turtle.done()

标签:right,递归,python,top,谢尔宾,points,三角形,getMid,left

来源: /wztshine/p/12990045.html

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