Interface graphique, dessiner un vecteur

le_papy Messages postés 15 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 6 juillet 2009 - 20 mars 2008 à 23:46
le_papy Messages postés 15 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 6 juillet 2009 - 23 mars 2008 à 12:25
bonjour, je suis actuelement en train de developper une petit programme perso (pour aprendre le langage Java) et je souhaite dessiner un dans une fenetre deux vecteurs qui se deplacent.
je n'ai pas de gros probleme pour y arriver dasn l'absolu, sauf que ce voudrais definir une classe "Vector" qui contien la definition de UN vecteur pour ensuite pouvoir l'appeler deux fois au lieu de coder directement les deux vecteurs dans la mem classe que la definition de la fenetre.

la question parait peut etre bete, mais je misere la dessus depuis plusieurs jours alors un peu d'aide serai bien venu...

voila a quoi resemble mon code pour le moment:

//############## Classe Main :

public class Main {
   
    private int x1=10,x2=10,y1=10,y2=10;
    private double t1=0,t2=Math.PI/2;   

   
    public static void main(String[] args)
    {
       
            Fenetre ma_fenetre = new Fenetre();
            JPanel mon_panel = new JPanel();
            Vector vect1 = new Vector(100, 100, (double) 10, (double) 10, Color.red);
            ma_fenetre.add(mon_panel, vect1);

            //ma_fenetre.vect1.paint(ma_fenetre.getGraphics());
 
        }
       
}

//############## Classe Fenetre :

public class Fenetre extends JFrame  {

    public Fenetre() {
      
        this.setSize(700,600);//taille de l'image
        this.setTitle("Titre de ma fenetre");
        this.setBackground(Color.BLACK);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
       
    }
   
    public static void main(String[] args)
    {
       Fenetre f=new Fenetre();            
      
    }
   
}

//############## Classe Vector :

public class Vector {
    private int x,y;
    private double t,rayon;
    private java.awt.Color couleur;
   
   
    public Vector(int _x,int _y,double _t,double _rayon,java.awt.Color _couleur)
    {
        this.x=_x;
        this.y=_y;
        this.rayon=_rayon;
        this.couleur=_couleur;
        this.t=_t;
    }
   
    public void paint(Graphics arg0)
           
    {
        double r;
        int X,Y,A,B,C,D;
               
//creatin des trois objets/lignes qui forment le vecteur
        Graphics2D g1;
        g1= (Graphics2D)arg0;
               
        Graphics2D g2;
        g2= (Graphics2D)arg0;
       
        Graphics2D g3;
        g3= (Graphics2D)arg0;
       
      
         r=(int)this.rayon/5; //taille du bout de fleche en fonctiond de la taille de la fleche
        
      
//coordonées de l'extremitée de la fleche.
        X=this.x+(int)((Math.cos(-t))*this.rayon);
        Y=this.y+(int)((Math.sin(-t))*this.rayon);
       
//cordonées des bout de la fleche               
        A=X+(int)(Math.cos(3*Math.PI/4-t)*r);
        B=Y-(int)(Math.sin(this.t-3*Math.PI/4)*r);
        C=X-(int)(Math.cos(this.t-Math.PI/4)*r);
        D=Y+(int)(Math.sin(this.t-Math.PI/4)*r);
       
//dessin de la fleche
        g1.setColor(couleur);//couleur
        g1.setStroke(new BasicStroke(2));//épaisseur   
        g1.drawLine(this.x,this.y,X,Y);
       
        g2.setColor(couleur);//couleur
        g2.setStroke(new BasicStroke(1));//épaisseur   
        g2.drawLine(X,Y,A,B);
       
        g3.setColor(couleur);//couleur
        g3.setStroke(new BasicStroke(1));//épaisseur   
        g3.drawLine(X,Y,C,D);
                     
    }
    public static void main(String[] args)
    {
       Vector vec=new Vector(50,50,(double)3,(double)20,Color.red);

    }

 
}

sachant que dans la fonction pain de la classe Vector "x,y" sont les coordonées de l'origine du vecteur, "t" est l'angle  et "rayon est da taille. pour les autes variables utilisées dans la fonctions paint, elle correspondent au shcema suivant :  
   http://paul.franche.free.fr/fleche.jpg

Merci d'avance de votre aide, et de votre comprehention !
________________________________________________

C'est depuis que Chuck Norris a laissé la vie sauve a un pingouin qu'on dit que Linux est libre !

2 réponses

le_papy Messages postés 15 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 6 juillet 2009
20 mars 2008 à 23:48
j'ai oublié de precisé, juste au cas ou, je travail sur NetBeans dans un environement Ubuntu.
merci !

_______________________________________________________________________
C'est depuis que Chuck Norris a laissé la vie sauve a un pingouin qu'on dit que Linux est libre !
0
le_papy Messages postés 15 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 6 juillet 2009
23 mars 2008 à 12:25
Pas d'idée? meme pas une piste pour mes recherches infuctueues? snif snif

C'est depuis que Chuck Norris a laissé la vie sauve a un pingouin qu'on dit que Linux est libre !
0
Rejoignez-nous