Python-科赫雪花(科克曲線)
阿新 • • 發佈:2019-01-08
翻譯過來的名字,WHO CARE
定義
設想一個邊長為1的等邊三角形,取每邊中間的三分之一,接上去一個形狀完全相似的但邊長為其三分之一的三角形,結果是一個六角形。現在取六角形的每個邊做同樣的變換,即在中間三分之一接上更小的三角形,以此重複,直至無窮。外界的變得原來越細微曲折,形狀接近理想化的雪花。它的名字叫科克曲線
首先繪製科克曲線
科克曲線很簡單
#科克曲線
import turtle
turtle.pensize(4)
turtle.pencolor('green')
turtle.penup()
turtle.goto(-100,0)
turtle.pendown()
#抽象步驟,如果是0階,只需前行;如果是一階,需要前行,轉向,前行,轉向,前行,轉向,前行,
#共有的是前行,階數需要控制轉向的次數,所以邊界是0階,只需前行
def keke_line(n=1,len=120):
if n==0:
turtle.fd(len)
else:
for i in [0,60,-120,60]:
turtle.left(i)
keke_line(n-1,len/3)
keke_line()
turtle.hideturtle()
turtle.done()
❄️雪花就很好辦了
#科赫雪花
import turtle
def kehe(len,n) :
if n == 0:
turtle.fd(len)
else:
for i in [0,60,-120,60]:
turtle.left(i)
kehe(len / 3, n - 1)
lenth = 500
level = 3
du = 120
def main():
turtle.penup()
turtle.goto(-100,100)
turtle.pensize(2)
turtle.color('green')
turtle.pendown()
kehe(lenth,level)
turtle.right(du)
kehe(lenth, level)
turtle.right(du)
kehe(lenth, level)
turtle.right(du)
turtle.hideturtle()
turtle.done()
main()
這是三階
這是五階