Précédent   Forum des professionnels en informatique > Java > Général Java
Général Java Java SE, Java ME, APIs, Persistance, JDBC, Spring, XML. Avant de poster -> FAQ Java, Sources Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 18h23   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut Ensemble de Julia

Bonjour, je me permet de poster ici (ne sachant pas si mon problème concerne l'interface graphique ou l'algorithme que j'utilise). Je m'explique, je veux représenter une fractale de l'ensemble de julia sous java.

Voici le programme que j'utilise:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class Panneau extends JPanel {
 
 
 
		public void paintComponent(Graphics g){
 
			g.setColor(Color.white);
			g.fillRect(0, 0, this.getWidth(), this.getHeight());
 
				paintM(g);
 
 
 
		}
 
		public void paintM(Graphics g){
				double x1=-1.5;
				double x2=1.5;
				double y1=-1.5;
				double y2=1.5;
 
				double zoom=100;
				int Itmax=200; //Iterations maximum
 
				double imagex=(x2-x1)*zoom;
				double imagey=(y2-y1)*zoom;
 
				double x=0;
				double y=0;
 
				while(x<imagex){
					System.out.println("x="+x);
					y=0;
					while(y<imagey){
						System.out.println("y="+y);
						double cx=0.285;
						double cy=0.01;
						double zx=x/zoom+x1;
						double zy=y/zoom+y1;
						int i=0;
 
						do{
							double r=zx;
							 zx = zx*zx - zy*zy + cx;
					           zy = 2*zy*r + cy;
					           i++;System.out.println("i="+i);System.out.println(zx*zx+zy*zy);
						}
						while(zx*zx+zy*zy<4 && i<Itmax);
 
						if(i==Itmax){
							System.out.println("converge");
							g.setColor(Color.black);
							g.fillOval((int)((x-x1)*zoom),(int)((y-y1)*zoom),2,2);
						}
						else{
							System.out.println("diverge");
							Color c=new Color(0,0,i*250/Itmax);
							g.setColor(c);
							g.fillOval((int)((x-x1)*zoom),(int)((y-y1)*zoom),2,2);
						}
 
						y=y+1;
					}
					x=x+1;
				}
	    }
PS : J'arrive a générer l'ensemble de mandelbrot, donc j'aurais tendance a dire que le problème vient de l'algorithme.
thy-sins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 08h53   #2
Membre éclairé
 
Avatar de JoeChip
 
Inscription : septembre 2008
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 285
Points : 337
Points : 337
Mais quel est le problème ?
JoeChip est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h51   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
ah désolé mdr,j'avais oublié qu'en fait,lors de l'affichage,le programme m'affiche 5 rangées de 10 points environs situés a égale distance l'un de l'autre...
autrement dit,rien qui ne ressemble ni de pres,ni de loin a une fractale
thy-sins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h25   #4
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
voila l'image que j'obtiens avec le code suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
   public void paintJulia(Graphics d){
		double x1=-2.1;
		double x2=0.6;
		double y1=-1.2;
		double y2=1.2;
		double zoom=300;
		int Itmax=500;
 
		double imagex=(x2-x1)*zoom;
		double imagey=(y2-y1)*zoom;
		double i=x1;
		while(i<x2){
			double j=y1;
			while(j<y2){
 
 
				Complex Z=new Complex(0,0);
 
				int k=0;
				double r=0;
				do{
				  r=Z.x;
				  Z.x = Z.x*Z.x - Z.y*Z.y +i;
                  Z.y = 2*r*Z.y + j;
				  k++;
				}while((Z.x*Z.x+Z.y*Z.y)<5 && k<Itmax);
 
				if(k==Itmax){
					Color c=new Color(0,0,0);
					d.setColor(c);
					d.fillOval((int)((i-x1)*zoom), (int)((j-y1)*zoom),2,2);
				}
				else{
					Color c=new Color(0,0,k*255/Itmax);
					d.setColor(c);
					d.fillOval((int)((i-x1)*zoom), (int)((j-y1)*zoom),2,2);
				}
				j=j+1/imagey;
 
			}
 
			i=i+1/imagex;
		}
 
	}
celui ci genere l'ensemble de Mandelbrot dont l'image est en piece jointe
Images attachées
Type de fichier : png drac.png (270,6 Ko, 10 affichages)
thy-sins est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h36.


 
 
 
 
Partenaires

Hébergement Web