Programme java fractale

matador215 Messages postés 8 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 19 juillet 2006 - 23 janv. 2005 à 13:42
cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 - 24 janv. 2005 à 17:21
Bonjour!!!

j'ai un petit probleme avec une programmation java!!!
En effet je dois creer un programme qui me creer des fractales de types julia et mandelbrot!!!
deja ca, ca va pas il me fait pas ce que je lui demande mais c'est pas grave!!!
le but de ce post et que je dois faire un degrade de couleur mais je n'arrive pa a le faire d'une autre couleur que le degrade de noir a blanc!!!!

public Color getCouleur(int i,int nbItermax)
{
int n =i * 255 / nbItermax;


Color c = new Color(n, n, n);
return c;
}

voici mon code!!!!je c que le probleme est que les argument pour le rouge vert et bleu sont les meme (n) mais je ne sais pas quoi mettre d'autre!!!!!

sinon j'ai un autre probleme c'est que je doit faire un changement et passer une fractale 2D en 3D!!!en fait je dois faire passer un nbre d'iteration en hauteur au lieu de la mettre en couleur mais le probleme c'est que je ne sais vraiment pas comment faire!!!!!

Merci d'avance pour votre aide si vous comprenez mon probleme!!!!

"N'entres pas dans l'arène si t'es pas MATADOR!!!"

3 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
24 janv. 2005 à 13:03
normal il te faut une palette avec un choix de couleur et un degrade..

tiens, voici une palette tricolore,

tu aurras juste a changer si tu veux cmin, cmoy et cmax,

(tu peux la transformer en bicolore)

et recuperer avec le getCouleur()r:



public class ColorDeg {

public Color cmin = Color.blue;

public Color cmoy = Color.yellow;

public Color cmax = Color.red;

public float dr1 = 0f;

public float dg1 = 0f;

public float db1 = 0f;

public float dr2 = 0f;

public float dg2 = 0f;

public float db2 = 0f;



public ColorDeg(Color cmin, Color cmoy, Color cmax) {

this.cmin = cmin;

this.cmoy = cmoy;

this.cmax = cmax;

calcDeltas();

}



public ColorDeg(){


calcDeltas();

}





public void calcDeltas() {

dr1 = ( (float) cmoy.getRed() - cmin.getRed()) / 255;

dg1 = ( (float) cmoy.getGreen() - cmin.getGreen()) / 255;

db1 = ( (float) cmoy.getBlue() - cmin.getBlue()) / 255;

dr2 = ( (float) cmax.getRed() - cmoy.getRed()) / 255;

dg2 = ( (float) cmax.getGreen() - cmoy.getGreen()) / 255;

db2 = ( (float) cmax.getBlue() - cmoy.getBlue()) / 255;

}



//de 0 a 255

public Color getCouleur(int val) {

Color c = Color.black;

if (val < 0 || val > 255) {

return c;

}

if (val < 128) {

val *= 2;

if (val > 255) {

val = 255;

}

c = new Color(cmin.getRed() + Math.round(val * dr1),


cmin.getGreen() + Math.round(val * dg1),


cmin.getBlue() + Math.round(val * db1));

}

else {

val = (val - 128) * 2;

if (val > 255) {

val = 255;

}

c = new Color(cmoy.getRed() + Math.round(val * dr2),


cmoy.getGreen() + Math.round(val * dg2),


cmoy.getBlue() + Math.round(val * db2));

}

return c;

}

}

-------------------
dams
-------------------
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
24 janv. 2005 à 13:16
Et pour le faire en 3D, utilise j3d...

tu trouveras des exemples ici, et de l'aide...

-------------------
dams
-------------------
0
cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 1
24 janv. 2005 à 17:21
Tu peux aussi imaginer quelque chose à partir du modèle HSB (pour Teinte Saturation Luminosité)

notamment avec la méthode static Color.getHSBColor(float h, float s, float b) en faisant varier la teinte.

Dobel
[Une
fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour
trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher]
0
Rejoignez-nous