使用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
答案 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