DemoSmiley.java [Last ned]

/*  Demo-program som viser hvordan man kan tegne en "Smiley"
 *  ved å legge sirkler, ellipser og rektangel på hverandre.
 *  Rekkefølgen blir visualisert med en animasjon.
 */
public class DemoSmiley extends EasyGraphics {
 
  public static void main(String[] args) {
    launch(args);
  }
 
  public void run() {
    final int FART = 5;
    final int BREDDE = 500;
    final int HØYDE = 700;
 
    makeWindow("Smiley", BREDDE, HØYDE);
 
    setFont("Arial", 28);
    setColor(0, 0, 255);
    int tekstId = drawString("Smiley under construction...", BREDDE/4, HØYDE/2);
 
    // Midtpunkt og radius til selve hodet.
    // Blir skalert i forhold til vindustørrelse.
    int x = BREDDE/2;
    int y = HØYDE/2;
    int r = BREDDE/4;
 
    setSpeed(FART);
 
    // Tegner de enkelte delene av "Smiley"-figuren",
    // i første omgang fordelt rundt om i vinduet.
 
    // Hodet
    // I første omgang blir det plassert oppe til venstre.
    setColor(255, 255, 0);  // Gul
    int hodeId = fillCircle(r+20, r+20, r);
 
    // Fyller en sirkel som skal bli den synlige delen av munnen.
    // I første omgang blir den plassert nede til venstre.
    setColor(0, 0, 0);      // Sort
    int munnHøyde = r/4;
    int munnRadius = r/2;
    int munnId = fillCircle(munnRadius+20, HØYDE-munnRadius-20, munnRadius);
 
    // En hjelpefigur som skal fjerne deler av munnen.
    // I første omgang blir den plassert nede til høyre.
    setColor(255, 255, 0);  // Gul
    int maskeringId = fillCircle(BREDDE-munnRadius-20, HØYDE-munnRadius-20, munnRadius);
 
    // Øynene
    // I første omgang blir de plassert oppe til høyre.
    setColor(0, 0, 0);      // Sort
    int øyeAvstand = r/4;
    int øyeHøyde = r/4;
    int øyeRadius = r/16;
    int venstreØyeId = fillEllipse(BREDDE-øyeRadius*8, øyeRadius*4, øyeRadius, øyeRadius*2);
    int høyreØyeId = fillEllipse(BREDDE-øyeRadius*4, øyeRadius*4, øyeRadius, øyeRadius*2);
 
    pause(1000);
    setVisible(tekstId, false); // Gjør teksten usynlig
 
    // Flytter figurene til riktig posisjon slik at de danner en "Smiley"
    moveCircle(hodeId, x, y);
    moveCircle(munnId, x, y+munnHøyde);
    moveCircle(maskeringId, x, y+munnHøyde-10);
    moveEllipse(venstreØyeId, x-øyeAvstand/2, y-øyeHøyde);
    moveEllipse(høyreØyeId, x+øyeAvstand/2, y-øyeHøyde);
  }
}
Kildekode blir vist ved hjelp av GeSHi.