// title: sketch-2020-01-15-14-17
// author: yue
precision mediump float;
uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;
#define PI 3.14159265359
#define TWO_PI 6.28318530718
void main(){
vec2 st=gl_FragCoord.xy/u_resolution.xy;
st.x*=u_resolution.x/u_resolution.y;
vec3 color=vec3(0.);
float d=0.;
float s=sin(u_time);
float c=cos(u_time);
st=st*2.-1.;
int N=4;
float a=atan(st.x,st.y)+PI;
float r=TWO_PI/float(N);
d=cos(floor(.5+a/r)*r-a)*length(st);
float w=.8;
color+=s*20.*vec3(.2*c,st.y*mod(st.x/st.y,.2),s+st.x-st.y);
st*=mat2(c,s,-s,c);
float v=.1/abs(st.y)*abs(st.x);
gl_FragColor=vec4(color*v,1.);
}