У меня есть набор вызовов 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 ...
Это вращает и масштабирует, однако, масштаб не применяется так, как мне бы хотелось. Это похоже на вращение перед масштабированием, что делает изображение шире по неправильной оси.
Есть ли лучший способ сделать это?