我有一个开始的明星。现在,我将如何将其变成分形?
import turtle
turing = turtle.Turtle()
for i in range(5):
turing.forward(110)
turing.left(216)
答案 0 :(得分:2)
分形是一种随着某种变化而重复的东西。所以把你的星环代码放到一个循环中并重复几次。在完成每个星环之后改变一些东西。你可以改变乌龟的位置,它指向的角度,或下一颗恒星的侧面或其中的任何一个或所有这些。
答案 1 :(得分:0)
遵循@mgkrebbs的一般哲学,通过一个简单的分形线来偏转一条线,我们可以使偏转的所有线都与分形的重复。你的星星很难处理,但由于它有顶点,我们可以递归地在每个顶点放置较小的星星:
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
的一小部分,可能有所帮助。
<强>输出强>