import java.awt.*;
import java.applet.*;

public class Apfelmannz3 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 = -1.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)/400.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*x - 3*x*y*y + cx;
                 neuy = 3*x*x*y - y*y*y+ cy;
                 x = neux;
                 y = neuy;
                 betragsQuadrat = x*x + y*y;
              } // end while

              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

