« Programmation objet et géométrie/Objets en Python sous Gimp/Programmation JavaScript sous ImageJ » : différence entre les versions

Contenu supprimé Contenu ajouté
Annulation des modifications 446721 de CommonsDelinker (discussion)
transfert de l'ensemble de Mandelbrot dans l'article sur Canvas
Ligne 253 :
La même méthode permet de dessiner l'[[w:ensemble de Mandelbrot|ensemble de Mandelbrot]] en donnant à chaque pixel une couleur proportionnelle au nombre d'itérations qu'il a fallu pour que le terme de la suite <math>z_0=c</math>, <math>z_{n+1}=z_n^2+c</math> sorte du disque de centre l'origine et de rayon 2. Comme précédemment, on crée une image ''cardio'' qui est un objet, une instance de la classe ''IJ'', et on y place l'un après l'autre des pixels dont la couleur est calculée dans une boucle:
 
Voici un code informatique pour dessiner l'ensemble de Mandelbrot en Javascript dans le canvas, cette méthode va dessiner la fractale en entière :
 
<poem>
var b = document.body;
var c = document.getElementsByTagName('theCanvas')[0];
var a = c.getContext('2d');
 
var w = c.width; // longueur du canvas
var h = c.height; // largeur du canvas
 
// Zoom pour dessiner la fractale dans tout le canvas
x1 = ((-2.1*w)/500);
x2 = ((0.6*w)/500);
y1 = ((-1.2*h)/250);
y2 = ((1.2*h)/250);
zm = 100; // valeur du zoom
im = 50; // nombre d'itération maximum
 
ix = (x2-x1)*zm;
iy = (y2-y1)*zm;
 
for(x=0;x<ix;x++){
for(y=0;y<iy;y++){
cr=x/zm+x1; //partie réelle du nombre complexe c
ci=y/zm+y1; // partie imaginaire du nombre complexe c
zr=0;
zi=0;
i=0;
 
do{
tmp = zr;
zr=zr*zr-zi*zi+cr; // partie réelle de Zn
zi= 2*tmp*zi+ci; // partie imaginaire de Zn
i++;
} while(zr*zr+zi*zi<4 && i<im);
if (i==im){
a.fillRect(x,y,1,1);
}
}
}
</poem>
<source lang="javascript">
var N=400;//taille de l'image