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

Graphisme Java Discussion :

Récupérer coordonnées Graphics2D


Sujet :

Graphisme Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 53
    Points
    53
    Par défaut Récupérer coordonnées Graphics2D
    Bonjour j'utilise un Graphics2D pour mon interface graphique.
    J'affiche une image avec renderer puis j'utilise la commande suivant pour faire une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Graphics2D offscreenGraphics;
    ...
    offscreenGraphics.drawLine( 10, 10, 500, 500 );
    ensuite, j'aimerais savoir comment faire pour savoir si mon curseur est sur la ligne lors du déplacement. (pour modifier la longueur de la ligne, par exemple )

    Merci de votre aide.

  2. #2
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    résous un système pour avoir l'équation de ta droite:
    10=a*10+b
    500=a*500+b
    (les points (10,10) et (500,500) vérifient l'équation y=a*x+b de ta droite affine)
    ensuite tu vérifies que les nombres renvoyés par getX() et getY() vérifient aussi cette équation auquel cas ton curseur est sur la droite. Enfin tout ça modulo le système de coordonnées inversées de Graphics2D
    La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre.
    Donald E. Knuth

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 53
    Points
    53
    Par défaut
    Le seul hic, c'est que les lignes sont fait aléatoirement avec le curseur.
    Il peut y en avoir plus d'une centaine.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 996
    Points
    7 996
    Par défaut
    Faits une liste de tes "lignes" en utilisant par exemple Line2D (que tu remplis a chaque ajout de ligne).

    Ensuite pour verifier quelles lignes tu touches tu peux faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Vector<Line2D> getSelection(Rectangle2D selectionArea)
    {
    Vector<Line2D> segments =  // Ici tu utilise la liste des lignes que tu as en mémoire.
    	    int cpt = segments.size();
    	    for (int i = 0 ; i < cpt;i++)
    	    {
    		Line2D seg = segments.get(i);
    		if (selectionArea.intersectsLine(seg)==true)
    		    retour.add(seg);
    	    }
    return segments;
    }
    Tu peux changer le methode pour avoir juste le point cliqué, et pas un rectangle de selection (ou faire un Rectangle(x,y,1,1)).
    Tu px moduler avec la solution précedente pour resoudre l'intersection . Et tu px utiliser une autre methode que intersectsLine si nécessaire.

    Par contre si tu vx modifier la longueur de ta ligne ... tu devras peut etre utiliser un systeme de noeuds et de lignes (qui contiennent 2 noeuds donc) a mon avis pour avoir plus facile ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Récupérer coordonnées gps Mobil java
    Par dmellorente dans le forum Java ME
    Réponses: 1
    Dernier message: 12/09/2009, 08h19
  2. Récupérer coordonnées gps Mobil java
    Par dmellorente dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 31/07/2009, 09h51
  3. Récupérer coordonnées pixels
    Par Invité dans le forum 2D
    Réponses: 8
    Dernier message: 04/06/2008, 17h31
  4. Récupérer Coordonnées d'une Cellule avec un Vlookup
    Par mouimouic dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/01/2008, 19h34
  5. Réponses: 9
    Dernier message: 19/12/2005, 14h24

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