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 :

Annuler les effets de rotate et scale


Sujet :

2D Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut Annuler les effets de rotate et scale
    Bonjour,

    J'utilise les méthodes rotate, translate, scale ou shear de Graphics 2D. Je fais une première itération avec. Puis j'aimerais dessiner par dessus un nouveau dessin. Ce dernier subit évidemment l'effet de rotation ou d'homothétie de l'itération précédente.

    Comment puis-je initialiser ces effets? Faire rotate (0) ou translate (0,0) ne suffit pas par exemple.

    Je n'ai pas trouvé de méthode de type initGraphicContext() ni dans Graphics2D, ni dans Graphics, ni dans JPanel.

    Sauriez-vous ce qui convient de faire, s'il vous plaît?

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    La méthode create de la classe Graphics permet de créer un Graphics "proxy" de l'objet originel, sur lequel on pourra appliquer toutes les transformations, puis que l'on disposera. Tout celà sans affecter les transformations utilisées aux graphics de base après le dispose

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Graphics2D g2d = (Graphics2D)g.create();
    g2d.setPaint(Color.red);
    g2d.fillRectangle(0,0,20,60);
    g2d.rotate(Math.PI/2)
    g2d.setPaint(Color.blue);
    g2d.fillRectangle(0,0,20,60);
    g2d.dispose();
     
     
    g.setPaint(Color.green);
    g.drawRectangle(0,0,20,60);
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut
    Merci beaucoup sinok, ça marche super!!

    Bonne journée.

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

Discussions similaires

  1. script php annulant les effets de deny from all
    Par anca2 dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2010, 23h34
  2. Comment annuler les effets d'une macro sur les feuilles?
    Par jolzeviking dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/06/2008, 14h29
  3. Les effets volumétriques
    Par funkydata dans le forum DirectX
    Réponses: 4
    Dernier message: 09/06/2006, 02h36
  4. [DirectSound]Stocker les effets sonores d'un jeu
    Par julian_ross dans le forum DirectX
    Réponses: 3
    Dernier message: 10/05/2006, 18h27
  5. Réponses: 8
    Dernier message: 24/04/2006, 13h00

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