MAN/Liste Fraktale Mandelbrot

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
== Mandelbrot-Menge ==
<code id="4dad6ba53622d">
double reZ, imZ, reZ_minus1, imZ_minus1;
int checkC(double reC,double imC)
    { int i; reZ=0.0; imZ=0.0; reZ_minus1=0.0; imZ_minus1=0.0;             //Startort des Floh 
        for (i=0;i<51;i++)                                                 //Anzahl der möglichen Sprünge 
         {  imZ=2*reZ_minus1*imZ_minus1+imC;                               //komplexe Gleichung z(n)=z(n-1)^2+C
            reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
            if (reZ*reZ+imZ*imZ>4) return i;                               //Test ob Floh auf runden Tischen mit Radius 2; Rückgabe Sprunganzahl wenn vom Tisch
            reZ_minus1=reZ;                                                //Rekursionsschritt
            imZ_minus1=imZ;
         }
        return i;                                                          //Rückgabe des Sprunganzahl=50
    }

void start(double a,double b,double c) 
    {      double reC, imC;                                                // Ein Schritt = 0.01 für Veränderung der Konstante C
               int i; schritt=c;
               canvas.clear(0,0,500,200);                                  // Löschen und Formatieren der Zeichenfläche   
               canvas.setColor(100,100,100);                               // Zeichenfarbe     
                   imC=b;                                                  //Start für imC=1 in Schritten "schritt" nach unten   
            for (int y=0;y<200;y++)                                        //Zeilen   
            {      reC=a;                                                   //Start für reC=-4 (links in Schritten "schritt" nach rechts
                      for (int x=0;x<500;x++)                               //Spalten        
                     {i=checkC(reC,imC);
                      if (i==51) canvas.fillRect(x, y, 1, 1);              // Punkt zeichnen, wenn Sprungfolge auf Tisch endete           
                       reC=reC+schritt;                                  // nächstes C in Richtung Realanteil        
                     };
              imC=imC-schritt;                                           // nächste Zeile    
             }
    }
</code>
<run id="4dad6ba53622d">
start(-4, 1, 0.01);                                                                   // start
</run>
<canvas></canvas>