It is also useful to take advantage of the 3D renderer if you want to do the equivalent of "flipping" a shape over the x or y axis, which is easier than trying to recalculate the vertices in your head.
void setup(){
size(200,200,P3D);
noStroke();
noLoop();
}
void draw(){
fill(0);
capitalE(width/2,height/2);
fill(255);
pushMatrix();
translate(width/2,height/2,0);
rotate(PI);
capitalE(0,0);
popMatrix();
fill(255,0,0);
pushMatrix();
translate(width/2,height/2,0);
rotateY(PI);
capitalE(0,0);
popMatrix();
}
void capitalE(int x, int y) {
beginShape();
vertex(x,y);
vertex(x,y+100);
vertex(x+40,y+100);
vertex(x+40,y+90);
vertex(x+10,y+90);
vertex(x+10,y+55);
vertex(x+29,y+55);
vertex(x+29,y+45);
vertex(x+10,y+45);
vertex(x+10,y+10);
vertex(x+33,y+10);
vertex(x+33,y);
endShape(CLOSE);
}
Screenshot of the output of the program above. The black capital E is rotated by 180 around the z axis and plotted in white. It is flipped over the y axis and plotted in red, so to make a mirror image.
program by E. Richardson in Processing