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
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
"Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
Penser à svp
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
"Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
Penser à svp
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.
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.
Sinon pour en revenir a la question, soit :
Au choix :
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);
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);Avec production d'une nouvelle image :
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.
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
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...
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.
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
ou du jni au choix
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager