大家好,我有一个像这样的弧
g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));
现在我需要使用java.awt.geom包的AffineTransform类来旋转这个弧,所以不得不放
public void AffineTransform(AffineTransform Tx){
AffineTransform rtt = new AffineTransform();
rtt.rotate(Math.toRadians(62));
}
所以我创建了一个对象,我告诉这个对象旋转62度,我希望它们是弧度,所以我转换。接下来我该怎么做才能使我的弧旋转这些弧度。我真的是一个新手,所以广泛的解释将是首选....
答案 0 :(得分:1)
相反,Graphics2D
类本身具有旋转功能,(更简单,更短):
rotate(double theta)
:使用旋转变换连接当前Graphics2D
变换。后续渲染将相对于前一个原点旋转指定的弧度。
rotate(double theta, double x, double y)
:将当前的Graphics2D Transform与转换后的旋转变换连接起来。此操作等同于以下调用序列:
translate(x, y);
rotate(theta);
translate(-x, -y);
然而,旋转之后,我想恢复图形状态:尝试创建图形对象并在绘制完成后将其处理掉:
Graphics2D g2d = (Graphics2D)g.create();
g2d.rotate(theta);
g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));
g2d.dispose();
或者如果不喜欢创建和处置:
g2d.rotate(theta);
g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));
g2d.rotate(-theta);