1. 程式人生 > >Python-科赫雪花(科克曲線)

Python-科赫雪花(科克曲線)

翻譯過來的名字,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()

這是三階

這裡寫圖片描述

這是五階

這裡寫圖片描述