topical media & game development
graphic-processing-learning-14-example-14-16-example-14-16.pde / pde
// Learning Processing
// Daniel Shiffman
// http://www.learningprocessing.com
// Example 14-16: Simple solar system
// Angle of rotation around sun and planets
float theta = 0;
void setup() {
size(200,200);
smooth();
}
void draw() {
background(255);
stroke(0);
// Translate to center of window to draw the sun.
translate(width/2,height/2);
fill(255,200,50);
ellipse(0,0,20,20);
// The earth rotates around the sun
pushMatrix();
rotate(theta);
translate(50,0);
fill(50,200,255);
ellipse(0,0,10,10);
// Moon #1 rotates around the earth
// pushMatrix() is called to save the transformation state before drawing moon #1.
// This way we can pop and return to earth before drawing moon #2.
// Both moons rotate around the earth (which itself is rotating around the sun).
pushMatrix();
rotate(-theta*4);
translate(15,0);
fill(50,255,200);
ellipse(0,0,6,6);
popMatrix();
// Moon #2 also rotates around the earth
pushMatrix();
rotate(theta*2);
translate(25,0);
fill(50,255,200);
ellipse(0,0,6,6);
popMatrix();
popMatrix();
theta += 0.01;
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.