// Learning Processing // Daniel Shiffman // http://www.learningprocessing.com // Example 14-4: Pyramid using beginShape(TRIANGLES) void setup() { size(200,200,P3D); } void draw() { background(255); // The pyramid's vertices are drawn relative to a centerpoint. // Therefore, we call translate() to place the pyramid properly in the window. // A slightly better option might be to include the translate in the drawPyramid() function and pass in x,y,z as arguments translate(100,100,0); drawPyramid(150); } // The function sets the vertices for the pyramid around the centerpoint at a flexible distance, // depending on the number passed in as an argument. void drawPyramid(int t) { stroke(0); // this pyramid has 4 sides, each drawn as a separate triangle // each side has 3 vertices, making up a triangle shape // the parameter " t " determines the size of the pyramid beginShape(TRIANGLES); fill(255,150); // Note that each polygon can have its own color. vertex(-t,-t,-t); vertex( t,-t,-t); vertex( 0, 0, t); fill(150,150); vertex( t,-t,-t); vertex( t, t,-t); vertex( 0, 0, t); fill(255,150); vertex( t, t,-t); vertex(-t, t,-t); vertex( 0, 0, t); fill(150,150); vertex(-t, t,-t); vertex(-t,-t,-t); vertex( 0, 0, t); endShape(); }