- Pythagoras Tree
- Cantor Dust
- Koch Curve
- Sierpinski Triangle
- Dragon Curve (this)
- Fractal Plant
Last time out we implemented the Sierpinski Triangle example from the L-System wikipedia page. Now, let’s continue our journey and see how we can implement the (rather impressive sounding) Dragon Curve example in Elm.
Example 6 : Dragon Curve
First, let’s define our L-System:
Again, thanks to the work we did in Part 4, our work here is rather simple:
which is a pretty straight translation of:
- ‘F’ : draw forward
- ‘–’ : turn left 90 degrees
- ‘+’ : turn right 90 degrees
- ‘X’ and ‘Y’ : ignore
Unlike the other L-Systems, this one grows much slower and as it slows it does make a nice picture!
Live Demo (here)
Use LEFT and RIGHT arrow keys to evolve/devolve the L-System.
Source Code (here)
Next : Fractal Plant
Subscribe to my newsletter and get new contents delivered straight to your inbox :-)