wireframe letter ‘A’
This gif is basically a byproduct of me trying to teach myself to use the rotate and P3D (3 Dimensional imaging in Processing) functions of Processing. The premise was relatively simple: testing myself to see if I could successfully plot co-ordinates for a 3D wireframe letter ‘A’ and making it rotate without interaction or prompting. The piece is not interactive although it could easily made to be so - for example if some of the values for co ordinates or speed/direction of rotation were replaced with mouseX (which is code for the horizontal position of the mouse within the window).

int x = 0;
//import statement
void setup(){
size(400, 400, P3D);
frameRate(120);
//gifExport = new GifMaker(this, “export.gif”);
//gifExport.setRepeat(0); // make it an “endless” animation
//gifExport.setTransparent(0,0,0); // black is transparent
}
void draw(){
background(255, 100, 0);
pushMatrix();
translate(width*0.5, height*0.5);
rotateX(frameCount / 60.0);
rotateY(frameCount / 60.0);
rotateZ(frameCount / 60.0);
noFill();
stroke(255, 255, 255, random(155, 255));
beginShape();//outline
vertex(50, -80, -100);
vertex(60, -100, -100);
vertex(100, -100, -100);
vertex(0, 100, -100);
vertex(-100, -100, -100);
vertex(-80, -100, -100);
vertex(-60, -100, -100);
vertex(-50, -80, -100);
vertex(50, -80, -90);
vertex(60, -100, -90);
vertex(100, -100, -90);
vertex(0, 100, -90);
vertex(-100, -100, -90);
vertex(-80, -100, -90);
vertex(-60, -100, -90);
vertex(-50, -80, -90);
vertex(50, -80, -80);
vertex(60, -100, -80);
vertex(100, -100, -80);
vertex(0, 100, -80);
vertex(-100, -100, -80);
vertex(-80, -100, -80);
vertex(-60, -100, -80);
vertex(-50, -80, -80);
vertex(50, -80, -70);
vertex(60, -100, -70);
vertex(100, -100, -70);
vertex(0, 100, -70);
vertex(-100, -100, -70);
vertex(-80, -100, -70);
vertex(-60, -100, -70);
vertex(-50, -80, -70);
vertex(50, -80, -60);
vertex(60, -100, -60);
vertex(100, -100, -60);
vertex(0, 100, -60);
vertex(-100, -100, -60);
vertex(-80, -100, -60);
vertex(-60, -100, -60);
vertex(-50, -80, -60);
vertex(50, -80, -50);
vertex(60, -100, -50);
vertex(100, -100, -50);
vertex(0, 100, -50);
vertex(-100, -100, -50);
vertex(-80, -100, -50);
vertex(-60, -100, -50);
vertex(-50, -80, -50);
vertex(50, -80, -40);
vertex(60, -100, -40);
vertex( 100, -100, -40);
vertex(0, 100, -40);
vertex(-100, -100, -40);
vertex(-80, -100, -40);
vertex(-60, -100, -40);
vertex(-50, -80, -40);
vertex(50, -80, -30);
vertex(60, -100, -30);
vertex( 100, -100, -30);
vertex(0, 100, -30);
vertex(-100, -100, -30);
vertex(-80, -100, -30);
vertex(-60, -100, -30);
vertex(-50, -80, -30);
vertex(50, -80, -20);
vertex(60, -100, -20);
vertex( 100, -100, -20);
vertex(0, 100, -20);
vertex(-100, -100, -20);
vertex(-80, -100, -20);
vertex(-60, -100, -20);
vertex(-50, -80, -20);
vertex(50, -80, -10);
vertex(60, -100, -10);
vertex(100, -100, -10);
vertex(0, 100, -10);
vertex(-100, -100, -10);
vertex(-80, -100, -10);
vertex(-60, -100, -10);
vertex(-50, -80, -10);
vertex(50, -80, 0);
vertex(60, -100, 0);
vertex(100, -100, 0);
vertex(0, 100, 0);
vertex(-100, -100, 0);
vertex(-80, -100, 0);
vertex(-60, -100, 0);
vertex(-50, -80, 0);
endShape();
beginShape();//inner hole
vertex(40, -60, -100);
vertex(0, 20, -100);
vertex(-40, -60, -100);
vertex(30, -60, -90);
vertex(40, -60, -90);
vertex(0, 20, -90);
vertex(-40, -60, -90);
vertex(30, -60, -80);
vertex(40, -60, -80);
vertex(0, 20, -80);
vertex(-40, -60, -80);
vertex(30, -60, -70);
vertex(40, -60, -70);
vertex(0, 20, -70);
vertex(-40, -60, -70);
vertex(30, -60, -60);
vertex(40, -60, -60);
vertex(0, 20, -60);
vertex(-40, -60, -60);
vertex(30, -60, -50);
vertex(40, -60, -50);
vertex(0, 20, -50);
vertex(-40, -60, -50);
vertex(30, -60, -40);
vertex(40, -60, -40);
vertex(0, 20, -40);
vertex(-40, -60, -40);
vertex(30, -60, -30);
vertex(40, -60, -30);
vertex(0, 20, -30);
vertex(-40, -60, -30);
vertex(30, -60, -20);
vertex(40, -60, -20);
vertex(0, 20, -20);
vertex(-40, -60, -20);
vertex(30, -60, -10);
vertex(40, -60, -10);
vertex(0, 20, -10);
vertex(-40, -60, -10);
vertex(30, -60, 0);
vertex(40, -60, 0);
vertex(0, 20, 0);
vertex(-40, -60, 0);
endShape();
popMatrix();
noStroke();
if(x < 960) {
line(x, 0, x, 960);
x = x + 1;
} else {
noLoop();
}
// Saves each frame as screen-0000.tif, screen-0001.tif, etc.
saveFrame(“wireA####.jpg”);
}























