// Thomas Henderson PS3 question 2 void setup() { size(550, 600, P3D); noFill(); noStroke(); } void draw() { background(64); //set lighting lights(); ambientLight(251, 102, 126); directionalLight(102, 102, 102, 0, -1, -1); //set new origin,rotation, and some control over X axis movement translate(width/2, height/2.5); float a = map(mouseY, 0, height, 0, PI); rotateX(a); rotateZ(frameCount/100.0); pyramid(55); translate(0, 0, -76); rotateX(PI); pyramiid(20); translate (0, 0, -63); rotateX(PI); pyramiiid(40); // additional boxes and spheres translate (0,0,-18); fill(198,192,54); sphere(23); translate(0,0,-13); box(65,65,5); box(50,50,20); translate(0,0,-123); fill (11,124,12); box(20,20,275); translate (0,0,108); box(35,35,10); } void pyramid(int s) { beginShape(TRIANGLES); fill(216,85,85); // top face vertex(-s, -s, -s); vertex( s, -s, -s); vertex( -0, -100, s); // bottom face vertex(-s, s, -s); vertex( s, s, -s); vertex( -0, 100, s); // left face vertex(-s, -s, -s); vertex(-s, s, -s); vertex( -100, 0, s); // right face vertex( s, -s, -s); vertex( s, s, -s); vertex( 100, 0, s); endShape(); //bottom of flower beginShape(QUADS); vertex(-s, -s, -s); vertex(s, -s, -s); vertex(s, s, -s); vertex(-s, s, -s); endShape(); } void pyramiid(int s) { beginShape(TRIANGLES); fill (0,137,26); // top face vertex(-s, -s, -s); vertex( s, -s, -s); vertex( -0, -100, s); // bottom face vertex(-s, s, -s); vertex( s, s, -s); vertex( -0, 100, s); // left face vertex(-s, -s, -s); vertex(-s, s, -s); vertex( -100, 0, s); // right face vertex( s, -s, -s); vertex( s, s, -s); vertex( 100, 0, s); endShape(); //bottom of flower beginShape(QUADS); vertex(-s, -s, -s); vertex(s, -s, -s); vertex(s, s, -s); vertex(-s, s, -s); endShape(); } void pyramiiid(int s) { beginShape(TRIANGLES); fill(224, 124, 124); // top face vertex(-s, -s, -s); vertex( s, -s, -s); vertex( -0, -85, s); // bottom face vertex(-s, s, -s); vertex( s, s, -s); vertex( -0, 85, s); // left face vertex(-s, -s, -s); vertex(-s, s, -s); vertex( -85, 0, s); // right face vertex( s, -s, -s); vertex( s, s, -s); vertex( 85, 0, s); rotate (40); endShape(); }