Bonjour,

J'essaie de faire une rotation d'un cercle par rapport à son centre à l'aide de la classe AffineTransform:

Cercle de départ:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Ellipse2D.Double circle = new Ellipse2D.Double(10, 10, 350, 350);
Rotation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
// rotation par rapport au centre
AffineTransform xform = new AffineTransform();
xform.setToRotation(0.3, circle.getCenterX(), circle.getCenterY());
//Récupération de la nouvelle shape
Path2D.Double nshape = (Path2D.Double)xform.createTransformedShape(circle);

Le problème est que width et heigth de circle.getBounds2D() et nshape.getBounds2D() sont différents (ie xxx.getBounds2D().getWidth() et xxx.getBounds2D().getHeight()).

Sauriez-vous pourquoi ? je n'ai effectué que la rotation du cercle par rapport au centre ...

Merci d'avance.