import java.awt.*;
import java.applet.*;

public class Apfelmann 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;
    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;
              int 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.dickPunkt(cx, cy, 1);
              cx = cx + dx;
          } // while cx
          cy = cy + dy;
     } // while cy
   }
} // class Apfelmann

