let img1, img2;
let v = [];
let face = [];
let models;
function preload() {
img1 = loadImage("/assets/movable.jpg");
img2 = loadImage("/assets/star.png");
}
function setup() {
createCanvas(600, 600, WEBGL);
strokeWeight(1);
angleMode(DEGREES);
noStroke();
vertices();
f();
models = [];
for (let i = 0; i < face.length; i++) {
models[i] = createModel(v[face[i].x], v[face[i].y], v[face[i].z]);
}
}
function draw() {
t1 = frameCount / 25;
translate(-40, -40, -4);
scale(0.7);
background(0);
texture(img1);
ambientLight(255);
pointLight(255, 255, 255, 600, 600, 600);
push();
rotateX(t1);
rotateY(t1);
rotateZ(t1);
s = 5;
for (let j = 0; j < v.length; j++) {
push();
translate(v[j].x * s, v[j].y * s, v[j].z * s);
rotateX((j * t1) / 2);
rotateY((j * t1) / 2);
rotateZ((j * t1) / 2);
for (let i = 0; i < models.length; i++) {
model(models[i]);
}
pop();
}
pop();
push();
rotateX(90);
rotateZ(90);
scale(80);
translate(-15, -10, -40);
for (let i = 0; i < models.length; i++) {
model(models[i]);
}
pop();
orbitControl(0.5, 0.5, 0.5);
}
function vertices() {
v = [];
v[0] = createVector(25.4, 0, 101.6);
v[1] = createVector(0, 50.8, 76.2);
v[2] = createVector(50.8, 25.4, 50.8);
v[3] = createVector(-50.8, -25.4, 50.8);
v[4] = createVector(0, -50.8, 76.2);
v[5] = createVector(-25.4, 0, 101.6);
v[6] = createVector(0, 50.8, 25.4);
v[7] = createVector(-25.4, 0, 0);
v[8] = createVector(-50.8, 25.4, 50.8);
v[9] = createVector(25.4, 0, 0);
v[10] = createVector(50.8, -25.4, 50.8);
v[11] = createVector(0, -50.8, 25.4);
}
function f() {
face = [];
face[0] = createVector(0, 2, 1);
face[1] = createVector(3, 4, 5);
face[2] = createVector(7, 8, 6);
face[3] = createVector(6, 2, 9);
face[4] = createVector(10, 0, 4);
face[5] = createVector(1, 8, 5);
face[6] = createVector(2, 6, 8);
face[7] = createVector(11, 9, 10);
face[8] = createVector(8, 7, 5);
face[9] = createVector(9, 2, 0);
face[10] = createVector(7, 3, 5);
face[11] = createVector(10, 9, 0);
face[12] = createVector(0, 1, 4);
face[13] = createVector(5, 4, 1);
face[14] = createVector(2, 8, 1);
face[15] = createVector(4, 3, 10);
face[16] = createVector(11, 10, 3);
face[17] = createVector(6, 9, 11);
face[18] = createVector(11, 7, 6);
face[19] = createVector(3, 7, 11);
}
function createModel(p1, p2, p3) {
return new p5.Geometry(
1,
1,
function createGeometry() {
this.vertices.push(
new p5.Vector(p1.x, p1.y, p1.z),
new p5.Vector(p2.x, p2.y, p2.z),
new p5.Vector(p3.x, p3.y, p3.z)
);
this.uvs.push([0.28, 0]);
this.uvs.push([0.87, 0.43]);
this.uvs.push([0.62, 1.0]);
this.faces.push([0, 1, 2]);
this.computeNormals();
this.gid = str(random(10));
}
);
}