У меня есть набор вызовов Java2D, которые рисуют векторы в графическом контексте. Я бы хотел, чтобы изображение увеличилось вдвое, а затем повернулось на 90 градусов.
Для этого я использую следующий код:
Graphics2D g2 = // ... get graphics 2d somehow ...
AffineTransform oldTransform = g2.getTransform();
AffineTransform newTransform = (AffineTransform)oldTransform.clone();
newTransform.concatenate(AffineTransform.getTranslateInstance(x1, x2));
newTransform.concatenate(AffineTransform.getScaleInstance((double)newW/(double)iconW, (double)newH/(double)iconH));
newTransform.concatenate(AffineTransform.getRotateInstance(Math.toRadians(rotationAngle), (double)iconW/2.0d, (double)iconH/2.0d));
// ... do my drawing ...
Это вращается и масштабируется, однако масштаб не применяется так, как хотелось бы. Он как бы поворачивается перед масштабированием, что делает изображение шире по неправильной оси.
Есть лучший способ сделать это?