0

我在使用 Graphics2D 绘图时使用 AffineTransform。我在绘制之前使用它来转换形状。rx 和 ry 应该是旋转的,但是在绘制形状时会剪切而不是旋转。如何强制轮换?我尝试使用默认构造函数,然后调用旋转、缩放和平移,但形状看起来与它们应该看起来的完全不同。

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

2 回答 2

2

阅读将仿射变换应用于图像文章。

您需要使用rotate方法来获得正确的旋转。

于 2010-05-19T14:54:27.313 回答
1

您可以使用旋转方法,例如

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
于 2017-11-18T14:47:57.660 回答