xxxxxxxxxx
String mode = 'simple';
void setup() {
size(1000, 1000);
background(5, 0, 20);
}
float tick;
void draw() {
background(5, 0, 20);
noStroke();
for (int x = 0; x < 1000; x += 30) {
for (int y = 0; y < 1000; y += 30) {
fill(255 - x / 5, 255, 255 - y / 5);
if (mode == 'simple') {
ellipse(x, y + (cos(tick / 100) * 5) + sin((x + tick) / 100) * 100, 10, 10);
}
if (mode == 'flip') {
ellipse(x + (cos(tick / 100) * 5) + sin((y + tick) / 100) * 100, y, 10, 10);
}
if (mode == 'tan') {
ellipse(x, y + (tan(tick / 100) * 50) + sin((x + tick) / 100) * 100, 10, 10);
}
if (mode == 'flip-tan') {
ellipse(x + (tan(tick / 100) * 50) + sin((y + tick) / 100) * 100, y, 10, 10);
}
if (mode == 'parallax') {
ellipse(x + ((mouseX - 500) / 5 * ((y + x) / 100) - 100), y + (cos(tick / 100) * 5) + sin((x + tick) / 100) * 100 + ((mouseY - 500) / 5 * ((y + x) / 100) - 100), 10, 10);
}
if (mode == 'distance') {
ellipse(x, y + (cos(tick / 100) * 5) + sin((x + tick) / 100) * 100, dist(x, mouseY, mouseX, y) / mouseX + 10, dist(x, mouseY, mouseX, y) / 10);
}
if (mode == 'line') {
ellipse(x, y + (cos(tick / 100) * 5) + sin((x + tick) / 100) * 100, 10, 100);
}
tick += 0.001;
}
}
fill(255, 255, 255);
textSize(64);
textAlign(CENTER, BOTTOM);
text("Mode: " + capitalise(mode), width / 2, height);
}
String capitalise(str) {
return str.charAt(0).toUpperCase() + str.substring(1);
}
void keyPressed() {
if (key == '1')
mode = 'simple';
if (key == '2')
mode = 'flip';
if (key == '3')
mode = 'tan';
if (key == '4')
mode = 'flip-tan';
if (key == '5')
mode = 'parallax';
if (key == '6')
mode = 'distance';
if (key == '7')
mode = 'line';
}