TUTORIAL
Baum (L-System) |
|
|
|
. In diesem Skript sieht man, wie man L-Systeme in coffeescript implementieren kann, ohne auf die LSystem-Klasse der igelgrafik-Seite zurückzugreifen |
lsystem = |
Baum |
axiom: 'F'
regeln:
'F': 'aFF-[b-F+F+F]+[c+F-F-F]'.split('')
funktionen:
'a': ->
stiftfarbe grün
'b': ->
stiftfarbe hellgrün
'c': ->
stiftfarbe gelb
'F': ->
vor 5
speichern -> zurück 5
'[': ->
stack.push []
']': ->
rückweg = stack.pop()
stifthoch()
für b in rückweg
b()
stiftrunter()
'+': ->
links 20
speichern -> rechts 20
'-': ->
rechts 20
speichern -> links 20
berechnen = (l) ->
l_neu = []
für x in l
l_neu = l_neu.concat(wenn lsystem.regeln[x]? dann lsystem.regeln[x] sonst x)
return l_neu
stack = [[]]
speichern = (f) ->
stack[stack.length-1] = [ f ].concat stack[stack.length-1]
zeichnen = (l) ->
für x in l
lsystem.funktionen[x]()
l = [ lsystem.axiom ]
wiederhole 4, ->
l = berechnen l
bildschirmleer()
stifthoch(); zurück 250; stiftrunter()
versteckeigel()
geschwindigkeit 300
zeichnen(l) |