L-systems are related to Post-systems and Semi-Thue systems, and like virii, they straddle the border of Turing Completeness. Then you need a layer to execute an L-system. But you don't have to go nearly that far to get some pretty pictures using the turtle concept.
#Ultra fractal flowers full#
A full LOGO system is in fact a Lisp programming environment using an unparenthesized Cambridge Polish syntax. Search for "LOGO graphics" or "Turtle graphics". There are lots of fun shapes to be made with turtle graphics using turtle geometry even without an L-system driving it. Forward, Back, Left, Right, Pen-up, Pen-down. This requires a couple of layers interacting, but each is interesting in it own right.įirst you need a turtle. If complex numbers give you a headache, there is a broad range of fractals that can be formulated using an L-system. The astounding fact about fractals is how we can obtain a tremendously complex set (in particular, the frontier of the Mandelbrot set) from easy and apparently innocuous requirements. If you want to have fun and produce pretty plots, draw it in different colors depending on the magnitude of abs(20th term). If the sequence corresponding to a certain point C is bounded, draw the corresponding pixel on the picture in black (for it belongs to the Mandelbrot set).If some z_k does, the sequence "goes to infinity" otherwise, you can consider it as bounded. In practice you can check, while iterating, if the absolute value of one of the 20 terms is greater than 2 (if one of the terms does, the subsequent terms are guaranteed to be unbounded). For each point/pixel, let C be that point, compute, say, 20 terms of the corresponding iterated sequence z 1, z 2, z 3.Cover the rectangle with a suitable rectangular grid of points (say, 400x400 points), which will be mapped to pixels on your monitor.Choose a rectangle in the complex plane (say, from point -2-2i to point 2+2i).In practice, to draw the Mandelbrot set you should: it does not go to infinity, is the Mandelbrot set (the black set in the figure on the Wikipedia page). The set of those constants C for which the sequence z 1, z 2, z 3. you compute z 1 = f(0), z 2 = f(z 1), z 3 = f(z 2) and so on. Now you iterate it starting from z = 0, i.e. Where z is a complex variable and C is a complex constant. You start with a function of complex variable You should indeed start with the Mandelbrot set, and understand what it really is.
#Ultra fractal flowers how to#
Screen.Plot(x,y, iterations % maxColors) //depending on the number of iterations, color a pixel.ġ.) Learn exactly what the Square of a Complex number is and how to calculate it.Ģ.) Figure out how to translate the (-2,2) rectangular region to screen coordinates. While(Complex.Abs(Z) < 2 & iterations < maxIterations) Int maxColors = 256 // Change as appropriate for your display. Int maxIterations = 10 // increasing this will give you a more detailed fractal public void MBrot()įloat epsilon = 0.0001 // The step size across the X and Y axis When done, color the original pixel depending on the number of iterations you've done. If the distance from the origin is greater than 2, you're done. If you reach the Maximum number of iterations, you're done.
![ultra fractal flowers ultra fractal flowers](https://i.pinimg.com/originals/3e/30/b7/3e30b7a4a3c4498f62541f75029bc9fd.jpg)
= ^2 + while keeping track of two things:Ģ.) the distance of from the origin. So, start by scanning every point in that rectangular area.Įach point represents a Complex number (x + yi). The Mandelbrot-set lies in the Complex-grid completely within a circle with radius 2.
#Ultra fractal flowers code#
My quick-n-dirty code is below (not guaranteed to be bug-free, but a good outline).