Code de dessein

leretvil Messages postés 133 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
J'aimerai avoir le code permetant de dessiner une droite en java (le code de drawLine() de java)
En fait je vourais qu'une image se deplace sur une droite quelconque mais je n'arrive pas à faire évoluer les coordonnées des positions

Merci
A voir également:

6 réponses

Utilisateur anonyme
 
Salut,
// dessiner un segment de droite en java
Package Graphics, méthode drawLine((int x1, int y1, int x2, int y2).
x1 et y1 sont les coordonnées début de la ligne.
x2 et y2 sont les coordonnées fin de la ligne.
Exemple:

// si public void paint(Graphics g):
         g.setColor(Color.black); //couleur différente du fond bien entendu
         g.drawLine(position x1, position y1, position x2, position y2);


Cordialement,

Dan

Ps,

Il serait bien que tu nous donnes la partie du code concerné pour qu'on puisse t'aider...
0
leretvil Messages postés 133 Statut Membre 8
 
Merci danimo
Mais ce que je veux c'est ce qui se cache derriere la fonction
g.drawLine(position x1, position y1, position x2, position y2);

le code de cette fonction quoi?

cordialement
0
Utilisateur anonyme
 
Re,

C'est ce que je t'ai donné!!!

Mais si tu veux un exemple le voici:
   import javax.swing.*;
   import java.awt.*;
	
    public class TracerLigne extends JFrame
   {
      private int x, y;
   
       public TracerLigne()
      {
         super("TRACER DEUX LIGNES DANS UN RECTANGLE."); // titre
      
         setSize(538, 248); // dimensions frame
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setVisible(true);
      }
   
       public void paint(Graphics g)
      {
         super.paint(g);
      
         x = 0;
         y = 39;  // premiere ligne de la zone de dessin (LE RECTANGLE)		
      
      
      // Le rectangle dans lequel sera inscrite la ligne
         g.setColor(Color.lightGray);
      // g.fillRoundRect(x +18, y, 502, 190); // sans angles arrondis
         g.fillRoundRect(x +18, y, 502, 190, 15, 15); // avec angles arrondis
         
      
         int posX1 = 40;
         int posY1 = 100;
         int posX2 = 240;
         int posY2 = 100; 
      
      // tracer une ligne
         g.setColor(Color.black);
         g.drawLine(posX1, posY1, posX2, posY2);
         
      	
         
         posX1 = 40;
         posY1 = 210;
         posX2 = 510;
         posY2 = 52; 
      
      // tracer une autre ligne
         g.setColor(Color.red);
         g.drawLine(posX1, posY1, posX2, posY2);
      }
   
       public static void main(String[] args)
      {
         new TracerLigne();
      }
   }


Dan
0
leretvil Messages postés 133 Statut Membre 8
 
Bien je vais être plus claire
je voudrais faire une annimation qui consiste à faire une réprésentation d'un envoi de message d'un paste à un autre. En fait mes postes sont des images d'un ordinateur que j'ai dessiner sur un JPannel et je voudrais que l'image d'une enveloppe se deplace du poste1 au poste2 quelque soit leurs positions sur le pannel
par exemple si poste1 est en position(10,50) et poste2 en position(200,500); je dois pouvoir deplacer mon enveloppe de position(10,20) à position(200,500) en incrémentant les coordonnées de position(10,20) jusqu'a position(200,500).
Merci d'avence pour vos réponses
0

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

Posez votre question
leretvil Messages postés 133 Statut Membre 8
 
danimo votre exemple marche bien mais je voudrais savoir comment on peut augmenter l'epaisseur se la ligne.
et pour revenir à mon probleme est ce que vous pouver dessiner un fillOval(x1,y1,x2,y2) le long de vos droite en faisent varier à l'aide d'une boucle les valeur de x1 et y1 jusqu'a ce quelle soit egale ou superieure à x2,y2

Merci
0
Utilisateur anonyme
 
Re,

Pour les lignes épaisses et un ovale (fixe pour l'instant) sur chacune des lignes, voici un exemple:

   import javax.swing.*;
   import java.awt.*;
	
    public class TracerLigne extends JFrame
   {
      private int x, y;
      
      private static Font font14;
   
       public TracerLigne()
      {
         super("TRACER DES LIGNES DANS UN RECTANGLE (+ un oval vert)."); // titre
      
         setSize(538, 248); // dimensions frame
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setVisible(true);
      }
   
       public void paint(Graphics g)
      {
         super.paint(g);
      
         x = 0;
         y = 39;  // premiere ligne de la zone de dessin (LE RECTANGLE)
         
      							
      
      
      // Le rectangle dans lequel sera inscrite la ligne
         g.setColor(Color.lightGray);
      // g.fillRoundRect(x +18, y, 502, 190); // sans angles arrondis
         g.fillRoundRect(x +18, y, 502, 190, 15, 15); // avec angles arrondis
         
      
         int posX1 = 40;
         int posY1 = 100;
         int posX2 = 240;
         int posY2 = 100; 
      
      // tracer une ligne épaisse (horizontale et noire)
         g.setColor(Color.black);
         g.fillRect(posX1, posY1, 200, 4); // ligne horizontale
      	                                  // il suffit de faire un rectangle
      												 
         posX1 = 470;
         posY1 = 100;
         posX2 = 250;
         posY2 = 60; 
      
      // tracer une autre ligne épaisse (verticale et bleue)
         g.setColor(Color.blue);
         g.fillRect(posX1, posY1, 4, 110); // ligne verticale
      	                                  // il suffit de faire un rectangle
         
         posX1 = 40;
         posY1 = 210;
         posX2 = 510;
         posY2 = 52; 
      
      // tracer une autre ligne (oblique et rouge)
         g.setColor(Color.red);
         g.drawLine(posX1+=1, posY1+=1, posX2+=1, posY2+=1); // on trace plusieures lignes
         g.drawLine(posX1+=1, posY1+=1, posX2+=1, posY2+=1);
         g.drawLine(posX1+=1, posY1+=1, posX2+=1, posY2+=1);
         
        
        // un oval >> ligne noire
         int xOval = 130;
         int yOval = 80;
         
         g.setColor(Color.green);  // fond
         g.fillOval(xOval, yOval, 10, 20);	
         
        // un oval >> ligne rouge
         xOval = 322;
         yOval = 95;
         
         g.setColor(Color.green);  // fond
         g.fillOval(xOval, yOval, 10, 20);
         
        // un oval >> ligne bleue
         xOval = 450;
         yOval = 200;
         
         g.setColor(Color.green);  // fond
         g.fillOval(xOval, yOval, 20, 10);
      	
      	
      }
   
       public static void main(String[] args)
      {
         new TracerLigne();
      }
   }


Cordialement,

Dan
0