let img1, img2;
let C1, C2, Si, r1, r2, Se, c1, c2;
function preload() {
img1 = loadImage("/assets/internal.jpg");
img2 = loadImage("/assets/internal_2.png");
}
function setup() {
createCanvas(600, 600, WEBGL);
c1 = random(-100, -200);
c2 = random(100, 200);
r1 = 100;
r2 = 50;
noFill();
strokeWeight(3);
fill(255, 255, 255, 50);
noStroke();
}
function draw() {
t = frameCount / 100;
C1 = createVector(c1 * cos(t) + (c2 / 3) * sin(t / 2) * cos(t), c1 * sin(t));
C2 = createVector(c2 * cos(t) * sin(t / 4), c2 * sin(t) * cos(t / 3));
r1 = 100 + 25 * sin(t / 3);
r2 = 75 + 50 * cos(t / 3);
Si = createVector(
(C1.x * r2 + C2.x * r1) / (r1 + r2),
(C1.y * r2 + C2.y * r1) / (r1 + r2)
);
texture(img1);
push();
rotateX(t / 10);
rotateY(t / 8);
rotateZ(t / 5);
box(2000, 2000, 2000);
pop();
texture(img2);
push();
push();
translate(C1.x, C1.y);
rotateZ(t);
rotateY(PI);
rotateZ(PI);
sphere(10, 50, 50);
torus(r1, 10, 50, 50);
pop();
translate(C2.x, C2.y);
rotateZ(-t);
rotateY(PI);
rotateZ(PI);
sphere(10, 50, 50);
torus(r2, 10, 50, 50);
pop();
pop();
push();
translate(Si.x, Si.y);
rotateY(PI);
rotateZ(PI);
sphere(5, 50, 50);
pop();
pop();
push();
stroke(0);
fill(0);
strokeWeight(2);
beginShape();
vertex(C1.x, C1.y, 0);
vertex(C2.x, C2.y, 0);
endShape();
pop();
pop();
}
function internalSimilitude() {
x = (C1.x * r2 + C2.x * r1) / (r1 + r2);
y = (C1.y * r2 + C2.y * r1) / (r1 + r2);
}