Mattéo Delabre d5a6933de9 | ||
---|---|---|
images | ||
scripts | ||
styles | ||
.gitignore | ||
LICENSE | ||
README.md | ||
index.html | ||
package.json |
README.md
Chaos game app
A Javascript web app that allows you to test the "Chaos game" algorithm that consists in a few steps:
- take a n-vertices polygon (in the app, there is only regular polygons, but it is possible to use scalenous ones);
- choose a random point (out or inside the polygon);
- choose a random vertex;
- take the middle of the segment vertex-point (other factors can also be used);
- go to step 2. using the middle point.
This game was created by Michael Barnsley and was described in his book Fractals everywhere in 1993. When using a triangle and a factor 1/2, you get the Sierpinski's triangle. Other fractal forms can also be plotted using other settings. Most common settings are present in the "Presets" section in the app.
Technical details
This experiment made me try several ways of drawing a lot of points on a canvas element. Actually, the coordinates of the points are calculated in a separate thread using Workers (js/lib/chaos.js), and then plotted using putDataImage. I wrote some performance tests here and the result is that this method is about 100x faster.
Points of a regular polygon are calculated using a circle and a loop that iterates along it (angle per angle). Using trigonometric functions, we can then retrieve the actual coordinates of these points (more in the js/lib/script.js file).