xxxxxxxxxx
187
//Attribution ChatGPT
let angle = 89;
let angle2 = 0;
let press = 200;
let x = -500;
let y = -500;
let d = 100;
function setup() {
let r = random(0, 255);
let g = random(0, 255);
let b = random(0, 255);
createCanvas(1000, 1000, WEBGL);
background(0);
}
function draw() {
let distance = dist(mouseX, mouseY, 0, 0);
if (mouseIsPressed & (distance < d / 2)) {
if (press > 100) {
press = press - 1;
}
fill(0)
} else{
fill(255)
}
circle(x, y, d);
//textFont('Georgia');
//textSize(12);
//text(press, 200, 200, 200, 200)
console.log(press);
let s = second();
if (s % 10 == 0) {
let r = random(0, 255);
let g = random(0, 255);
let b = random(0, 255);
background(r, g, b);
}
// Rotate the cube around the Y-axis and X-axis
rotateY(angle);
rotateX(angle2);
// Draw the outer cube
drawCube(200);
// Increment the angle for continuous rotation
angle += 0.001;
angle2 += 0.002;
// Move to the right and draw another cube
push();
translate(300, 0, 0);
drawCube(200);
pop();
// Move to the left and draw another cube
push();
translate(-300, 0, 0);
drawCube(200);
pop();
// Move upwards and draw another cube
push();
translate(0, -300, 0);
drawCube(200);
pop();
// Move downwards and draw another cube
push();
translate(0, 300, 0);
drawCube(200);
pop();
// Increment the angle for continuous rotation
angle += 0.001;
angle2 += 0.002;
}
function drawCube(size) {
let r = random(0, 255);
let g = random(0, 255);
let b = random(0, 255);
push();
noFill();
// stroke(random(0,255));
let s = second();
if (s % 10 == 0) {
stroke(r,b,g);
}
// Top
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(-size / 2, -size / 2, -size / 2);
vertex(size / 2, -size / 2, -size / 2);
vertex(size / 2, -size / 2, size / 2);
vertex(-size / 2, -size / 2, size / 2);
endShape(CLOSE);
noFill();
// Bottom
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(-size / 2, size / 2, -size / 2);
vertex(size / 2, size / 2, -size / 2);
vertex(size / 2, size / 2, size / 2);
vertex(-size / 2, size / 2, size / 2);
endShape(CLOSE);
noFill();
// Left
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(-size / 2, -size / 2, -size / 2);
vertex(-size / 2, -size / 2, size / 2);
vertex(-size / 2, size / 2, size / 2);
vertex(-size / 2, size / 2, -size / 2);
endShape(CLOSE);
noFill();
// Right
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(size / 2, -size / 2, -size / 2);
vertex(size / 2, -size / 2, size / 2);
vertex(size / 2, size / 2, size / 2);
vertex(size / 2, size / 2, -size / 2);
endShape(CLOSE);
noFill();
// Front
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(-size / 2, -size / 2, size / 2);
vertex(size / 2, -size / 2, size / 2);
vertex(size / 2, size / 2, size / 2);
vertex(-size / 2, size / 2, size / 2);
endShape(CLOSE);
noFill();
// Back
if (s % 5 == 0) {
fill(r, g, b);
}
beginShape();
vertex(-size / 2, -size / 2, -size / 2);
vertex(size / 2, -size / 2, -size / 2);
vertex(size / 2, size / 2, -size / 2);
vertex(-size / 2, size / 2, -size / 2);
endShape(CLOSE);
noFill();
// Draw the inner recursive cube
if (size > press) {
// Limit the recursion
push();
scale(0.9);
drawCube(size * 0.9);
pop();
}
pop();
}
/*function mouseClicked(){
if (press > 100) {
press = press - 1;
}
}*/