Différences entre les versions de « Programmation objet et géométrie/Objets en Python sous Gimp/Programmation JavaScript sous ImageJ »

transfert de l'ensemble de Mandelbrot dans l'article sur Canvas
(Annulation des modifications 446721 de CommonsDelinker (discussion))
(transfert de l'ensemble de Mandelbrot dans l'article sur Canvas)
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
1 277

modifications