Как настроить AffineTransform для вращения вместо сдвига? - PullRequest
0 голосов
/ 19 мая 2010

Я использую AffineTransform при рисовании с Graphics2D. Я использую его для преобразования Shape перед его рисованием. Предполагается, что rx и ry вращаются, но при рисовании фигуры срезаются, а не вращаются. Как я могу принудить вращение? Я попытался использовать конструктор по умолчанию, затем вызвал вращение, масштабирование и перевод, но формы выглядели совсем не так, как должны.

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

Ответы [ 2 ]

2 голосов
/ 18 ноября 2017

Вы можете использовать метод поворота, как

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
2 голосов
/ 19 мая 2010

Чтение Применение аффинного преобразования к изображениям статья.

Вам нужно использовать rotate метод, чтобы получить правильное вращение.

...