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

 Java Discussion :

AffineTransform explication svp


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Par défaut AffineTransform explication svp
    Bonjour,

    est ce que quelqu'un pourrai m'expliquer comment fonctionne la classe AffineTransform svp?... Merci d'avance pour votre aide..

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Salut,


    Si tu souhaite uniquement appliquer une transformation de manière temporaire, il convient de récupérer l'ancienne transformation, de la composer avec la nouvelle transformation et de restaurer l'ancienne transformation lorsque vous avez fini. Pour stocker une transformation temporaire, vous devez passer par la classe AffineTransform qui représente n'importe quel type de transformation. Ensuite, pour récupérer une transformation, utilisez la méthode getTransform() de la classe Graphics2D. Enfin, pour redonner l'ancienne transformation, prenez la méthode setTransform() de Graphics2D.

    Exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AffineTransform ancienne_Transf =g.getTransform();
    ensuite, tu applique les nouvelles transformations

    Enfin, ajouter l'ancienne transformation à la nouvelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.setTransform(ancienne_Transf );

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    http://fr.wikipedia.org/wiki/Transformation_affine

    Pour le reste c'est comme slim_java l'a dit. Tu peux aussi faire des trucs du genre :

    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
    24
    25
    26
    27
    28
    AffineTransform t1 = AffineTransform.getTranslateInstance(dx, dy);
     
    // A utiliser avec précaution !
    g2d.setTransform(t1); // Remplace la transformation actuelle de g2d par t.
     
    g2d.transform(t1);  // Concatène t à la transformation actuelle de g2d.
    // équivalent à:
    // g2d.translate(dx, dy);
     
    try {
      g2d.transform(t1.createInverse());
      // équivalent à:
      // g2d.translate(-dx, -dy);
    } // Certaines transformations affines complexes ne peuvent pas être inversées.
    // Mais les transformations affines simples telles que la translation, rotation, le changement d'échelle ou la déformation parallèles peuvent l'être.
     catch (NoninvertibleTransformException nte) {
    }
     
    AffineTransform t2 = AffineTransform.getRotateInstance(Math.PI);
    g2d.transform(t2);  // Concatène t à la transformation actuelle de g2d.
    // équivalent à:
    // g2d.rotate(Math.PI);
    try {
      g2d.transform(t2.createInverse());
      // équivalent à:
      // g2d.rotate(-Math.PI);
    } catch (NoninvertibleTransformException nte) {
    }
    Ainsi donc concaténer plusieurs transformations simples entre elles pour créer une transformation complexe, revient à la même chose qu'enchainer plusieurs primitives de transformation sur le Graphics.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. une petite explication svp
    Par psylox dans le forum Web
    Réponses: 0
    Dernier message: 25/02/2009, 10h24
  2. XSS basé sur DOM? explication svp
    Par momoh dans le forum Sécurité
    Réponses: 0
    Dernier message: 09/08/2008, 13h19
  3. petite explication svp
    Par vmfa-2 sven dans le forum C++
    Réponses: 4
    Dernier message: 20/05/2008, 17h06
  4. [ASP:Login] Besoin d'explication SVP.
    Par ketthos dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/07/2007, 11h46
  5. gestion de double clic , des explications svp
    Par pas30 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2007, 15h25

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