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 :

[fillOval]Tracer des cercles


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Fredo02
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 146
    Par défaut [fillOval]Tracer des cercles
    bonjour,
    dans le cadre d'un projet universitaire, j'ai besoin de tracer des cercles dans un grand cercle.

    Pour cela je creer des cercles, C0 est le grand cercle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Cercle(x,y,rayon);
    C0=(0,0,400);
    C1=(200,0,100);
    C2=(-100,10,100);
    je veux tracer le cercle CO au milieu de ma Jframe et que les autres cercles soit placés par rapport au centre de C0;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     paintComponent(Graphics g)
    {
         g.fillOval((int)(getWidth()/2)-C0.rayon),(int)(getHeight()/2)-C0.rayon),(int)C0.rayon,(int)C0.rayon);
     
          g.fillOval((int)(getWidth()/2)-C0.rayon)+C0.rayon+C1.X-C1.rayon,(int)getHeight()/2)-C0.rayon)+C0.rayon+C1.Y-C1.rayon,(int)C0.rayon,(int)C0.rayon);
     
       g.fillOval((int)(getWidth()/2)-C0.rayon)+C0.rayon+C2.X-C2.rayon,(int)getHeight()/2)-C0.rayon)+C0.rayon+C2.Y-C1.rayon,(int)C0.rayon,(int)C0.rayon);
     
    }
    le probleme c'est sur papier c'est tout a fait logique alors que sur une Jframe la placement et totalement abérant.

    je vous réexplique le soucis, j'ai un grand cercle C0 qui doit etre placer au milieu de la JFrame, ensuite par rapport au centre de C0 je trace les autres cercles

    Si qq1 sait d'ou vient ce probleme !!!!!

    merci

  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Déjà, premier problème, le code est pour le moins obscur ! Je ne parviens pas à faire le lien entre tes explications de principe et le code lui même. Pourquoi, par exemple, enlèves-tu C0.rayon aux coordonnées du premier ? Tu veux un cercle décalé ?

    Puisque tu es un universitaire, pourrais-tu nous faire une belle translation de coordonnées dans le plan ? Sachant que le 0,0 du Graphics est le point en haut à gauche, quel décalage général voudrais-tu pour ta figure ?

    Nota : et aussi emploie la balise code, c'est tellement plus beau.

  3. #3
    Membre confirmé Avatar de Fredo02
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 146
    Par défaut
    en fait je veux dessiner un cercle en plein milieu d'une Jframe.
    le centre de ce cercle sera interpreter comme (0,0) afin de tracer d'autres cercles.

    exemple un cerce ayant un x de 100 et un y de 200 devra etre placer dans le grand cercle a partir de son centre.

    regardez l'exemple joint.

    1) comment determiner ou commence a dessiner le grand cercle pour qu'il se retrouve au milieu de la Jframe et commencé tracer les autres cercles pour qu'il soit dessiner par rapport au centre de ce cercle ???

    Merci
    Images attachées Images attachées  

  4. #4
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Pour le premier cercle, j'ai l'impression que c'est bon à lire le code. Je suppose que c'est C0.

    Pour le second, que je suppose être C1, je m'étonne que sa hauteur et largeur soient celle de C0 ? C'est le même étonnement pour C2, d'ailleurs.

    Mais comme cela reste obscur... essaie de mieux organiser ton code avec des variables intermédiaires par exemple, qui te permettent surtout de donner un nom clair aux choses, d'utiliser le modèle du Renderer dont on parle quelques fois ici, ou aussi peut être la méthode translate de Graphics pour simplifier les expressions.

    Tiens nous au courant.

  5. #5
    Membre confirmé Avatar de Fredo02
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 146
    Par défaut
    oui mais je dois tracer les autres cercles a partir du centre de C0, je dois donc prendre ces coordonnées.

    C'est vraiment tordu comme programmation.

  6. #6
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Tu t'es pas trompé en utilisant fillOval ? C'était pas plutôt drawOval que tu voulais utilisé ? Parce que là, tu dessines des disques, pas des cercles .

    Ca marche ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     paintComponent(Graphics g)
    {
       int xCentre = (int)(getWidth()/2) ;
       int yCentre = (int)(getHeight()/2) ;
       g.drawOval (xCentre-C0.rayon, yCentre-C0.rayon, (int)C0.rayon, (int)C0.rayon);
       g.drawOval (xCentre+C1.X-C1.rayon, yCentre+C1.Y-C1.rayon, (int)C1.rayon, (int)C1.rayon);
       g.drawOval (xCentre+C2.X-C2.rayon, yCentre+C2.Y-C2.rayon, (int)C2.rayon, (int)C2.rayon);
    }

Discussions similaires

  1. Imfindcircle - tracer des cercles
    Par Novae dans le forum Images
    Réponses: 6
    Dernier message: 16/10/2013, 13h21
  2. Tracer des cercles avec Tkinter
    Par XSquallX dans le forum Général Python
    Réponses: 4
    Dernier message: 07/04/2010, 15h34
  3. Tracer des lignes ,arcs de cercle et cercle
    Par lostchina dans le forum C++Builder
    Réponses: 16
    Dernier message: 12/06/2007, 06h59
  4. Réponses: 3
    Dernier message: 15/04/2004, 08h44
  5. [VB6] [Graphisme] Tracer un cercle avec pset
    Par bleuerouge dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/12/2002, 17h12

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