Aide pour une Application graphique

Résolu
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 21 janv. 2005 à 11:13
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007 - 21 janv. 2005 à 16:42
Bonjour tout le monde,
Voilà, j'aurais besoin d'aide pour développer une application graphique. En effet, j'ai developpé un petit programme qui permet de calculer les points d'un système d'équations. Le problème c'est que je voudrais créer une frame pour pouvoir tracer ma fractale, or j'ai vu que la méthode g.drawLine ne permet pas de tracer des doubles. Est ce que quelqu'un pourrait m'aider ?
J'ai mis mon code source ci-dessous qui calcul les itérations:
(J'ai pas mis l'interface graphique car je ne sais pas comment faire pour le moment).

public class MiraTest {


public static void main(String[] args) {
double x, y, xp;
int i, n;
double A = -0.48;
double B = 0.93;
x = 4.0;
y = 4.0;
n = 30000;
xp=0.0;


for(i=1;i<=200;i++) {
xp = B*y+A*x+2*(1-A)*x*x/(1+xp*xp);
y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
x = xp;


}
for(i=1;i<=n;i++) {
xp = B*y+A*x+2*(1-A)*x*x/(1+x*x);
y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
x = xp;
}
}

Jarod_Delaware

5 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
21 janv. 2005 à 16:42
hum, j'avais pas vu, mais dans les 2 boucles,

le copier-coller c'est mal passe..



si tu regardes :

if (y<min )="">

min = y;

}





n'est pas bon,

c'est



</min>
if (y<min){<min )="">

min = y;

}



tu en a qqu'une a corrige...

</min>



-------------------
dams
-------------------
3
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
21 janv. 2005 à 14:05
Tiens, cadeau...

c'est ameliorable en interface,

mais ca te premettra de jouer un peu avec les parametres

(des JSpinners auraient ete mieux...)



import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class Mira {



private double x, y, xp;

private int n, n1;

private double A;

private double B;

private double max;

private double min;

private double valX[];

private double valY[];

private MiraPanel miraPanel;



public Mira() {

A = -0.48;

B = 0.93;

x = 4.0;

y = 4.0;

n = 30000;

n1 = 200;

xp = 0.0;

miraPanel = new MiraPanel();

createView();

}



public static void main(String[] args) {

new Mira();

}



private void launchTest(){

max = Double.MIN_VALUE;

min = Double.MAX_VALUE;

valX = new double[n + n1];

valY = new double[n + n1];

int index = 0;

for (int i = 1; i <= n1; i++) {

xp = B * y + A * x + 2 * (1 - A) * x * x / (1 + xp * xp);

y = -x + A * xp + 2 * (1 - A) * xp * xp / (1 + xp * xp);

x = xp;

if (y<min )="">

min = y;

}

else if (y>max){

max = y;

}

if (x<min )="">

min = x;

}

else if (x>max){

max = x;

}

valX[index] = x;

valY[index++] = y;

}

for (int i = 1; i <= n; i++) {

xp = B * y + A * x + 2 * (1 - A) * x * x / (1 + x * x);

y = -x + A * xp + 2 * (1 - A) * xp * xp / (1 + xp * xp);

x = xp;

if (y<min )="">

min = y;

}

else if (y>max){

max = y;

}

if (x<min )="">

min = x;

}

else if (x>max){

max = x;

}

valX[index] = x;

valY[index++] = y;

}

}



private void createView(){

//interface

final JTextField t1 = new JTextField(""+A);

final JTextField t2 = new JTextField(""+B);

final JTextField t3 = new JTextField(""+x);

final JTextField t4 = new JTextField(""+y);

final JTextField t5 = new JTextField(""+n);

final JTextField t6 = new JTextField(""+n1);

final JTextField t7 = new JTextField(""+xp);

JButton button = new JButton("OK");

button.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

try{

A = Double.parseDouble(t1.getText());

B = Double.parseDouble(t2.getText());

x = Double.parseDouble(t3.getText());

y = Double.parseDouble(t4.getText());

n = Integer.parseInt(t5.getText());

n1 = Integer.parseInt(t6.getText());

xp = Double.parseDouble(t7.getText());

launchTest();

miraPanel.setPoints();

}

catch(Exception ex){

JOptionPane.showMessageDialog(miraPanel,


"ERROR",


"INCORRECT VALUES!!!",


JOptionPane.ERROR_MESSAGE);

return;

}

}

});

JPanel panel = new JPanel(new GridLayout(8,2));

panel.add(new JLabel("A"));

panel.add(t1);

panel.add(new JLabel("B"));

panel.add(t2);

panel.add(new JLabel("x"));

panel.add(t3);

panel.add(new JLabel("y"));

panel.add(t4);

panel.add(new JLabel("n"));

panel.add(t5);

panel.add(new JLabel("n1"));

panel.add(t6);

panel.add(new JLabel("xp"));

panel.add(t7);

panel.add(button);

//frame

JFrame frame = new JFrame("MIRA");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().setLayout(new BorderLayout());

frame.getContentPane().add(BorderLayout.CENTER, miraPanel);

frame.getContentPane().add(BorderLayout.EAST, panel);

frame.pack();

frame.setVisible(true);

}



private class MiraPanel

extends JPanel{



private int SIZE = 600;



public MiraPanel(){

super(true);

this.setPreferredSize(new Dimension(SIZE, SIZE));

}



public void setPoints() {

repaint();

}



public void paintComponent(Graphics g) {

if (valX==null || valY==null || valX.length<2){

return;

}

int w = getWidth();

int h = getHeight();

g.clearRect(0, 0, w, h);

g.setColor(Color.black);

//transform points

int valx[] = new int[valX.length];

int valy[] = new int[valX.length];

double echelle = Math.max(w,h) / (max - min);

for (int i=0; i<valx.length ;="" i="">

valx[i] = (int)Math.round((valX[i] - min) * echelle);

valy[i] = (int)Math.round((valY[i] - min) * echelle);

}

//draw points

for (int i=1; i<valx.length ;="" i="">

g.drawLine(valx[i-1], valy[i-1],

valx[i], valy[i]);

}

}



}

}


-------------------
dams
-------------------</valx.length></valx.length></min></min></min></min>
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
21 janv. 2005 à 16:08
Salut dmallet,
Un grand merci pour ton aide. Cependant j'ai essayé de compiler ton code mais j'ai 14 erreurs de compilations. Si tu peux m'aider ça serait bien.
Encore merci.

Jarod_Delaware
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
21 janv. 2005 à 16:15
Donnes-moi test erreurs, c'est pas normal, ca doit compiler...

-------------------
dams
-------------------
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
21 janv. 2005 à 16:31
Voici les 14 erreurs que j'ai lors de la compilation:

Mira.java:44: ')' expected
min = y;
^


Mira.java:46: 'else' without 'if'
else if (y>max){
^


Mira.java:52: illegal startof type
else if (x>max){


Mira.java:55: expected
valX[index] = x;
^


Mira.java:56: ']' expected
valY[index++] = y;
^


Mira.java:56: expected
valY[index++] = y;
^
Mira.java:58: 'class' or 'interface' expected
for (int i=1; i<n; i++) {
^


Mira.java:70: 'class' or 'interface' expected
}
^


Mira.java:164: ';' expected
valx[i] = (int)Math.round((valX[i] - min) * echelle);
^


Mira.java:165: ')' expected
valy[i] = (int)Math.round((valY[i] - min) * echelle);
^


Mira.java:168: illegal start of type
for (int i=1; i
^


Mira.java:171: expected
}
^


Mira.java:172: 'class' or 'interface' expected
}
^


Mira.java:176: 'class' or 'interface' expected
^
14 errors

Jarod_Delaware
0
Rejoignez-nous