Springender

Aus ProgrammingWiki
< MAN

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    
           }
  }