如何设置AffineTransform旋转而不是剪切?

时间:2010-05-19 14:39:52

标签: java graphics2d affinetransform

使用Graphics2D绘图时使用AffineTransform。我在绘制它之前用它来变换一个Shape。 rx和ry应该是旋转但是在绘制形状时剪切不旋转。我该如何强制轮换?我尝试使用默认构造函数然后调用rotate,scale和translate,但形状看起来并不像它们应该看起来的那样。

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

2 个答案:

答案 0 :(得分:2)

阅读Applying Affine Transformation to Images文章。

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

答案 1 :(得分:2)

您可以使用

之类的旋转方法
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