import java.awt.*;
import java.applet.*;

public class ApfelmannFarbig extends Applet
{
  Turtle t;
  public void paint(Graphics g)
  {
    t = new Turtle(this, 100, 150, 0);
    zeichne();   // Aufruf des Hauptprogramms
  }

  void zeichne() // Hauptprogramm
  { double xMin = -2.0;
    double xMax =  1.0;
    double yMin = -1.5;
    double yMax =  1.5;
    t.setzeKOS(xMin, xMax, yMin, yMax);

    /* ---------- x-Achse ----------
    t.strecke(xMin,0,xMax,0);
    for (double x=xMin; x<=xMax; x = x + 0.5)
      t.strecke (x, -0.05, x, 0.05);
    // ---------- y-Achse ----------
    t.strecke(0,yMin,0,yMax);
    for (double y=yMin; y<=yMax; y = y + 0.5)
      t.strecke (-0.05, y, 0.05, y);
    */
    int maxSprungAnzahl = 1000;
    int sprungNummer;
    int farbNr;
    double dx = (xMax-xMin)/800.0;
    double dy = (yMax-yMin)/600.0;
    double cy = yMin;
    double cx;
    double x  = 0;
    double y  = 0;
    double neux = 0;
    double neuy = 0;
    double betragsQuadrat = 0;

    while (cy <= yMax)
    {    // Zeile abarbeiten
         cx = xMin;
         while (cx <= xMax)
         {
              x  = 0;
              y  = 0;
              neux = 0;
              neuy = 0;
              betragsQuadrat = 0;
              sprungNummer = 1;

              // Jetzt wird gesprungen
              while ((sprungNummer <= maxSprungAnzahl) && (betragsQuadrat <= 4))
              {  sprungNummer++;
                 neux = x*x - y*y + cx;
                 neuy = 2*x*y + cy;
                 x = neux;
                 y = neuy;
                 betragsQuadrat = x*x + y*y;
              } // end while

/*              if (betragsQuadrat <= 4)
                   t.stiftfarbe(Color.black);
              else { farbNr = sprungNummer % 12;
                     if (farbNr == 0) t.stiftfarbe(Color.darkGray);
                     else if (farbNr == 1) t.stiftfarbe(Color.lightGray);
                     else if (farbNr == 2) t.stiftfarbe(Color.lightGray);
                     else if (farbNr == 3) t.stiftfarbe(Color.pink);
                     else if (farbNr == 4) t.stiftfarbe(Color.yellow);
                     else if (farbNr == 5) t.stiftfarbe(Color.blue);
                     else if (farbNr == 6) t.stiftfarbe(Color.gray);
                     else if (farbNr == 7) t.stiftfarbe(Color.magenta);
                     else if (farbNr == 8) t.stiftfarbe(Color.red);
                     else if (farbNr == 9) t.stiftfarbe(Color.cyan);
                     else if (farbNr == 10) t.stiftfarbe(Color.green);
                     else if (farbNr == 11) t.stiftfarbe(Color.orange);
                   }
*/
              if (betragsQuadrat <= 4)
                   t.stiftfarbe(Color.black);
              else { farbNr = sprungNummer % 16;
                     t.stiftfarbe(new Color(0,0,farbNr*16+15));
                   }
              t.dickPunkt(cx, cy, 1);
              cx = cx + dx;
          } // while cx
          cy = cy + dy;
     } // while cy
   }
} // class Apfelmann

