// Learning Processing // Daniel Shiffman // http://www.learningprocessing.com // Example 14-14: Rotating both squares float theta1 = 0; float theta2 = 0; void setup() { size(200,200,P3D); } void draw() { background(255); stroke(0); fill(175); rectMode(CENTER); // Save the current transformation matrix. // This is where we started, with (0,0) in the top left corner of the window and no rotation. pushMatrix(); // Translate and rotate the first rectangle. translate(50,50); rotateZ(theta1); // Display the first rectangle. rect(0,0,60,60); // Restore matrix from Step 1 so that it isn't affected by Steps 2 and 3! popMatrix(); pushMatrix(); // Translate and rotate the second rectangle. translate(150,150); rotateY(theta2); // Display the second rectangle. rect(0,0,60,60); popMatrix(); theta1 += 0.02; theta2 += 0.02; }