2014-02-12 37 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