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 :

Faire une rotation d'image


Sujet :

2D Java

  1. #1
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut Faire une rotation d'image
    Bonjour,

    Voila, j'ai une image présente dans un canvas. J'aimerais lui faire faire une rotation (de n'importe quel angle) sur elle même.

    Si vous avez une piste ou du code ce serait cool !

    Merki !

    +++
    Ju

  2. #2
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Je viens de trouver un bout de code qui ne m'a pas l'air mal :
    ici
    Peut être que ca pourra en aider d'autres...
    +++
    Ju

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pour obtenir une répétition de l'image à l'infini, la méthode getPixel() de la classe MyImage a été modifiée pour toujours retourner une valeur, quelles que soient les coordonnées demandées.
    Marrant, apparement qqun ne connait pas la classe TexturePaint. Mais bon d'un autre cote c'est peut-etre plus leger et ca marche avec des versions de Java plus anciennes.

    Sinon pour en revenir a la question, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    double centerX = image.getWidth()/2.0;
    double centerY = image.getHeight()/2.0;
    Graphics2D graphics = ...
    graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    Au choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    graphics.rotate(angle, centerX, centerY);
    graphics.drawImage(image, 0, 0, null);
    graphics.rotate(-angle, centerX, centerY);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AffineTransform transform = AffineTransform.getRotateInstance(angle, centerX, centerY);
    graphics.setTransform(transform);
    graphics.drawImage(image, 0, 0, null);
    graphics.setTransform(transform.createInverse()); // Cette methode peut lever une exception.
    Avec production d'une nouvelle image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AffineTransform transform = AffineTransform.getRotateInstance(angle, centerX, centerY);
    AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC);
    BufferedImage rotatedImage = op.filter(image, null);
    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

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    pour la légèreté faut voir, vu le peu de célérité dont fait peu preuve java sur tout ce qui concerne la trigo...

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Bof, ca peut s'arrancer avec la bonne vieille methode du "on se precalcule une table des sin et cos pour eviter de les recalculer a chaque fois".
    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

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    ou du jni au choix

  7. #7
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Heu il ne faut pas exagerer. Je code en ce moment meme des demos Java qui utilise de la trigo pour faire du rendu a 60 fps en plein ecran et il n'y a pas de probleme. Quand on dessine des images ce n'est pas un cos() qui fait perdre du temps ^^

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

Discussions similaires

  1. faire une rotation d'une image
    Par calitom dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/09/2008, 14h58
  2. Faire une rotation d'image
    Par smerek dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/07/2008, 21h09
  3. faire une mosaique d'image dans un formulaire
    Par db48752b dans le forum IHM
    Réponses: 17
    Dernier message: 05/09/2006, 13h55
  4. Comment faire une liste d'image de choix ?
    Par poussinphp dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2005, 00h34
  5. Comment faire une rotation de metafile (l'angle de 90° me suffit) ?
    Par Tardiff Jean-François dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2005, 08h58

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