我在Java中尝试使用Graphics2D。但像往常一样,我被困住了。 :P问题是: 假设我有这段代码,
Graphics2D g=(Graphics2D)(this.getGraphics()); //Inside a JFrame
g.rotate(Math.PI/8);
g.drawLine(10, 20, 65, 80);
//I want this one and all following lines to be drawn without any rotation
g.drawLine(120, 220, 625, 180);
有可能???我知道必须有某种方式,但我无法弄清楚。请帮忙。
答案 0 :(得分:14)
您要做的是恢复转换。
尝试
AffineTransform oldXForm = g.getTransform();
g.rotate(...);
g.drawLine(...);
g.setTransform(oldXForm); // Restore transform
g.drawLine(...);
答案 1 :(得分:4)
调用getTransform()
(给你一份副本),旋转,绘图,然后使用setTransform()
恢复状态。 docs for setTransform()
甚至有一个例子。