2010-05-19 27 views
0

J'utilise AffineTransform lorsque je dessine avec Graphics2D. Je l'utilise pour transformer une forme avant de la dessiner. rx et ry sont supposés être en rotation mais lors du dessin les formes sont cisaillées et non tournées. Comment puis-je appliquer la rotation? J'ai essayé d'utiliser le constructeur par défaut, puis j'ai appelé la rotation, la mise à l'échelle et la traduction, mais les formes ne ressemblaient en rien à ce qu'elles étaient supposées être.Comment paramétrer AffineTransform pour qu'il tourne au lieu du cisaillement?

transform = new AffineTransform(sx, rx, ry, sy, tx, ty); 
transform.createTransformedShape(shape); // Where shape is a GeneralPath instance 

Répondre

0

Vous pouvez utiliser la méthode rotate comme

transform = g2d.getTransform(); 
transform.rotate(Math.toRadians(angleInDegree), pivotX, pivotY); 
g2d.setTransform(transform);  
// draw anything and it will be rotated based on rotate method 
transform.rotate(Math.toRadians(0), pivotX, pivotY); 
g2d.setTransform(transform); // now further drawing will no be drawn rotated