De-Broglie Rainbow

Code

            
    elem=document.querySelector(".example-container");
    setCanvas(elem);
    
    n=200;
    t=0;
    function draw() {
        clearCanvas();
        
        for(j=0;j<7;j++){
            for(i=0;i<=360;i+=3){
                r=100+40*sin(degToRad(3*i+t+10*j))*sin(degToRad(3*i+t+10*j));
                y=r*sin(degToRad(i));
                x=r*cos(degToRad(i));
                y=HEIGHT/2-y;
                x=WIDTH/2+x;
                new circle(x,y,3,`hsl(${50*j},100%,50%)`,'#fff',0);
            }
        }
        
        t++;

        requestAnimationFrame(draw);
    }
    
    draw();