void setup(){
size(500, 500);
smooth();
frameRate(24);
background(0);
}
void draw(){
noStroke();
fill(0, 30);
rect(-1, -1, width, height);
stroke(255, 255, 0);
strokeWeight(1.0);
translate(width/2, height/2);
rotate(frameCount * 0.01);
float variantRhythm = sin(frameCount * 0.1);
for(float sinValue = -1; sinValue <= 1.0; sinValue += 0.05){
float sinValue2 = sinValue;
if(variantRhythm > 0){
if(sinValue > 0){
sinValue2 = sinValue + sq((1 - abs(sinValue))) * 1.0 * variantRhythm;
} else {
sinValue2 = sinValue - sq((1 - abs(sinValue))) * 1.0 * variantRhythm;
}
} else {
if(sinValue > 0){
sinValue2 = sinValue - sq(abs(sinValue)) * 1.0 * abs(variantRhythm);
} else {
sinValue2 = sinValue + sq(abs(sinValue)) * 1.0 * abs(variantRhythm);
}
}
float radian = asin(sinValue2);
float cosValue = cos(radian);
line(150 * cosValue, 150 * sinValue2, 150 * -cosValue, 150 * sinValue2);
}
}