evil_daffid wrote:

hi,

Im reseaching fractals, and how to make them in python using recursion.

I've written a bit of code to make the koch isalnd but something isn't

right, I have the basic shape but there's something wrong with the

recursion i've used, could someone help me.

Here is the code im using:

[Code snipped]

Is this a homework assignment or something?

Anyway, this is a little bit more pythonic and flexible, though my

python has gotten a little bit rusty. It uses L-Systems for state storage.

Recursion is only left in because you asked for it.

Iterate() should get more sophisticated for more complex string

substitutions.

import turtle

turtle.clear

class fractal(object):

def __init__(self, lstring, rule, line_length, angle,

shrink_factor):

self.lstring = lstring

self.rule = rule

self.line_length = line_length

self.angle = angle

self.shrink_factor=shrink_factor

def draw(self):

drawingdict = {'F': lambda: turtle.forward(self.line_length),

'-':lambda: turtle.right(self.angle),

'+':lambda: turtle.left(self.angle),}

for rule in self.lstring:

drawingdict[rule]()

def iterate(self):

self.lstring = self.lstring.replace(rule[0],rule[1])

self.line_length=self.line_length/self.shrink_factor

def recurse(f,smallest):

if f.line_length>=smallest:

turtle.reset()

f.iterate()

f.draw()

recurse(f,smallest)

if __name__=='__main__':

start = 'F+F+F+F'

rule = ('F','F+F-F-FF+F+F-F')

f = fractal(start,rule,50,90,2)

recurse(f,10)