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 67 68 69 70 71 72 73
| // mon canvas
import java.awt.*;
public class Graph extends Canvas{
Eq eq1; // le canvas connait léquation
Listener2 c; //c mon mouselistener pour choisir mon echelle
public Graph(Eq eq1){
this.eq1=eq1;
c=new Listener2(this,eq1);
this.addMouseListener(c);
}
public void paint(Graphics g){
//je dessine les axe
g.setColor(Color.RED);
g.drawLine(0,getHeight()/2,getWidth(),getHeight()/2);
g.drawLine(getWidth()/2,0,getWidth()/2,getHeight());
int i=0;
g.setColor(Color.BLACK);
for(i=getWidth()/2+34;i<=getWidth();i+=34){
g.drawLine(i,0,i,getHeight());
}
for(i=getWidth()/2-34;i>=0;i-=34){
g.drawLine(i,0,i,getHeight());
}
for(i=(getHeight()/2)-34;i>=0;i-=34){
g.drawLine(0,i,getWidth(),i);
}
for(i=(getHeight()/2)+34;i<=getHeight();i+=34){
g.drawLine(0,i,getWidth(),i);
}
g.setColor(Color.BLUE);
//je parcours le graphique en largeur et je rempli mon tableau de
//point
for(i=0;i<=getWidth();i++){
eq1.calculer(i,eq1.t);
//je trace tous les point du tableau g.drawLine(doubleToPixX(eq1.Vect.get(i).x),doubleToPixY(eq1.Vect.get(i).y),doubleToPixX(eq1.Vect.get(i).x),doubleToPixY(eq1.Vect.get(i).y));
}
}
//fonctions permettant de convertir des pixel en double et inversemen par rapport a l'echelle choisit
public static double pixToDoubleX(double e){
return(double) (e-346)/34;
}
public static double pixToDoubleY(double e){
return(double) (-e+335)/34;
}
public static int doubleToPixX(double e){
return (int)(e*34)+346;
}
public static int doubleToPixY(double e){
return (int)(-e*34)+335;
}
} |
Partager