import java.awt.*;
public class PlanetCanvas extends Canvas {
 int position = 0;
 Image imageBuffer;                             
 public void IncrementPosition() {
  if (position < 100) {++position;}
  else {position = 0;}
  repaint();
 }
 public void setup(Graphics g) {
  Dimension d = size();
  imageBuffer = createImage(d.width, d.height); 
  g = imageBuffer.getGraphics();                
  int x0 = d.width / 2;
  int y0 = d.height / 2;
  int pR = x0 / 5, pD = 2 * pR;
  int sR = x0 / 15, sD = 2 * sR;
  int orbitX = x0 / 2, orbitY = y0 / 6;
  double angle = Math.PI * position / 50;
  double sinAngle = Math.sin(angle);
  double cosAngle = Math.cos(angle);
  int dX = (int) (sinAngle * orbitX);
  int dY = (int) (cosAngle * orbitY);
  if (cosAngle <= 0) {
   g.setColor(Color.black);
   g.fillOval(x0 + dX - sR, y0 + dY - sR, sD, sD);
  }
  g.setColor(Color.gray);
  g.fillOval(x0 - pR, y0 - pR, pD, pD);
  g.setColor(Color.black);
  if (cosAngle > 0) {
   g.setColor(Color.black);
   g.fillOval(x0 + dX - sR, y0 + dY - sR, sD, sD);
  }
 }
 public void paint(Graphics g) {
  Dimension d = size();
  if (imageBuffer != null) { 
   g.drawImage(imageBuffer, 0, 0, this);        
  }
  setup(g);
}}
