MAN/Fraktale

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
== Julia-Menge ==

<code id="4d8cd536683a3">
double reC, imC; 
int checkZo(double reZ_minus1,double imZ_minus1) {
        double reZ,imZ;
        int i;
        for (i=0;i<50;i++) // maximal 50 Iterationen
        {
            imZ=2*reZ_minus1*imZ_minus1+imC;
            reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
            if (reZ*reZ+imZ*imZ>4) return i; //Prüfung des Fluchtschranke und Rückgabe der Abbruchtiterationsschritt
            reZ_minus1=reZ;
            imZ_minus1=imZ;
        }
        return i;
    }

void start(double a,double b) {
   double reZo, imZo, zelle=0.0065; // Ein Pixel = 0.0065
   int i;
   canvas.clear(0,0,500,200);  // Löschen und Formatieren der Zeichenfläche

   reC = a; // -0.65175;
   imC = b; // 0.41850;
   imZo= 1; // oberern Rand setzen
   for (int y=0;y<200;y++) //Zeilen
   {
        reZo=-1.5; // linken Rand setzen
        for (int x=0;x<500;x++) //Spalten
        {
           i=checkZo(reZo,imZo);
           canvas.setColor(255-i%7*25,255-i%20*12,255-i%3*50); // Farbe Julia-Menge in RGB je nach Abbruchtiterationsschritt
           canvas.fillRect(x, y, 1, 1); // Punkt zeichnen
           reZo=reZo+zelle; // nächste Spalte
        }
        imZo=imZo-zelle; // nächste Zeile
    }
}
</code>
<run id="4d8cd53668408">start(-0.65175,0.41850); // start(double reC, double imC)
</run>
<canvas></canvas>