Bonjour,
est ce que quelqu'un pourrai m'expliquer comment fonctionne la classe AffineTransform svp?... Merci d'avance pour votre aide..
Bonjour,
est ce que quelqu'un pourrai m'expliquer comment fonctionne la classe AffineTransform svp?... Merci d'avance pour votre aide..
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 :
ensuite, tu applique les nouvelles transformations
Code : Sélectionner tout - Visualiser dans une fenêtre à part AffineTransform ancienne_Transf =g.getTransform();
Enfin, ajouter l'ancienne transformation à la nouvelle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part g.translate(......)
Code : Sélectionner tout - Visualiser dans une fenêtre à part g.setTransform(ancienne_Transf );
Ma Chaine youtube : https://www.youtube.com/@medBkDev
Mes Articles
guide du débutant pour apprendre à programmer en Java -
FAQ Java et les cours et tutoriels Java
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 :
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.
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) { }
Merci de penser au tagquand 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
Partager