2014-02-12 36 views

回答

2

分形是一些重複的變化。因此,將你的星循環代碼放入一個循環並重復幾次。做每個星循環後改變一些東西。你可以改變烏龜的位置,或者指向哪個角度,或者下一顆恆星的邊緣有多長,或者其中的任何一個或全部。

0

遵循@mgkrebbs的一般哲學,用一個簡單的分形來偏轉一條直線,我們就可以使所有偏轉線的分形都變得更小。你的明星是棘手一起工作,但因爲它有verticies,我們可以遞歸把小星星在每個頂點:

from turtle import Turtle, Screen 

def star(turtle, length, depth): 
    turtle.left(90) 
    for _ in range(5): 
     turtle.forward(length) 
     heading = turtle.heading() 
     if depth > 1: 
      star(turtle, length/2, depth - 1) 
     turtle.setheading(heading) 
     turtle.left(216) 

turing = Turtle() 
turing.speed("fastest") 

star(turing, 180, 3) 

turing.hideturtle() 

screen = Screen() 

screen.exitonclick() 

隨着深度的增加,你可以看到星星開始重疊 - 使圖像變大的增加length,或使遞歸成爲length的一小部分可能有所幫助。

輸出

enter image description here