IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Ajouter des arcs entre des sommets


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Par défaut Ajouter des arcs entre des sommets
    Bonjour,
    dans mon code j'ai créer des sommets et j'ai les affichés dans un jpanel et je cherche à relier ces sommets par des arcs, qui à une idée comment les afficheés.
    voici les codes :
    Classe Sommet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Sommet {
        String desc;    int x;    int y;    Color c;
        Sommet (String desc,int x,int y,Color c) {  
        	this.desc=desc;
            this.x=x;
            this.y=y;
            this.c=c;     
        }
     }
    code de panel qui contient toutes les sommets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class MonPanel extends JPanel {	
        private List<WebServ> sommets;  
        public MonPanel () {
        	sommets = new ArrayList<Sommet>();
        } 
        public void paintComponent(Graphics g){
            for(Sommet s : sommets) {        
                g.setColor(s.c);
                g.fillOval(s.x, s.y, 75, 75);
                g.setColor(Color.WHITE);
                g.drawString(s.desc, s.x+27,s.y+40);
            }
        }  
        public void addSommet(Sommet s) {
        	sommets.add(s);
        }
    }
    code d'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    public class Tester {
    	public static void main(String[] args) {
     
    	JFrame f=new JFrame();		
    	f.setTitle("Graphe des sommet ");
            f.setSize(900, 700);
            f.setLocationRelativeTo(null);               
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
     
            MonPanel p = new MonPanel ();        
            p.addSommet(new Sommet("S1",100, 70,Color.blue));
            p.addSommet(new Sommet("S2",300, 200,Color.gray));
            p.addSommet(new Sommet("S3",500, 100,Color.red));
     
            f.setLayout(new BorderLayout());
            f.add(p, BorderLayout.CENTER);      
     
            f.setVisible(true);
     
       }
    }
    et normalement classe arc que je doit le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class arc {
    	Sommet source;
    	Sommet cible;	
    	public arc (Sommet S, Sommet C){
    		source=S;
    		cible=C;
    	}
    }

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    Salut

    Citation Envoyé par chaker707 Voir le message
    qui à une idée comment les afficheés.
    euh... vu que tu sais faire un drawOval et un drawString, je pense que tu vas réussir à faire un drawArc non?

    Sinon tu discrétises ton arc et tu traces une suite de segments...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 56
    Par défaut
    Bonsoir,

    Tu as une valeur de rayon à respecter entre tes 2 points ou tu veux tracer un arc passant par 3 points ?

    Cdt,
    Dmf

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    Citation Envoyé par dmfdmf Voir le message
    Tu as une valeur de rayon à respecter entre tes 2 points ou tu veux tracer un arc passant par 3 points ?
    Ouuuh, très bonne question...

    Apparemment dans son code, un arc relie deux sommets. Donc d'ici à ce que ce ne soit qu'un simple segment...
    Sinon effectivement, il manque soit un rayon (et éventuellement une donnée supplémentaire pour indiquer dans quel sens est la courbure) soit un troisième point pour définir le centre de l'arc ou un point de passage.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Par défaut
    merci bq, j'ai trouvé une solution et ça marche bien :
    ajouter cette partie de code à MonPanel.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       for(arc a : arcs) {   
        	g.setColor(Color.blue);
        	g.drawLine(a.source.x+35,a.source.y+35,a.cible.x+35,a.cible.y+35);      	
        }
     
        public void addArc(arc x) {
    	    arcs.add(x);
        }

  6. #6
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    D'où la nécessité d'employer les bons termes quand on pose une question...

    arc == arc de cercle != segment
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/05/2015, 15h13
  2. Comment ajouter un espace entre des AccordionHeader?
    Par 123quatre dans le forum Flex
    Réponses: 1
    Dernier message: 22/04/2010, 23h01
  3. Réponses: 2
    Dernier message: 21/02/2007, 12h54
  4. [GDI,GDI+,OpenGL] Dessiner des cerles et des arcs
    Par romeo9423 dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h44
  5. dessin d'un arc entre deux sommet
    Par yesra dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/04/2004, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo