
Show HN: JavaScript Fractal implementation in a single tweet - asyncanup
https://twitter.com/asyncanup/status/1128435192199139329
======
rsiqueira
Here is a collection of fractals in 140 characters (or less!) of JavaScript:
[https://www.dwitter.net/h/fractal](https://www.dwitter.net/h/fractal) It
includes Mandelbrot, Fern, Iterated Function System (IFS), Cantor Set, Dragon
Curves, fractal animations and other recursive functions and iterated
geometric transformations. Dwitter is a great place to find clever code tricks
and very short algorithm implementations.

------
asyncanup
Hi, author here.

Here's the code:

F=()=>{ c=v.getContext('2d') c.lineWidth=.03 C=[1,-.5,-.5] S=[0,.87,-.87]
P=[[X=300,Y=300],[X,Y],[X,Y]] R=()=>{d=parseInt(Math.random() _3)
P=[http://P.map](http://P.map)
(([x,y],i)=>(c.moveTo(x,y),c.lineTo(X=x+3_C[I=(d+i)%3],Y=y+3*S[I]),[X,Y]))
c.stroke() setTimeout(R,17) } R()}

Assumes no existing dependencies or dwitter-like shortcuts available. Needs
this HTML to be on the page:

<canvas width=400 height=400 id="v"></canvas><script>F()</script>

Demo here:
[https://runkit.com/asyncanup/5cd629840a18bf001b4860e9](https://runkit.com/asyncanup/5cd629840a18bf001b4860e9)

~~~
iverjo
I think you could shave off 8 characters by doing

    
    
      0|Math.random()*3
    

instead of

    
    
      parseInt(Math.random()*3)

