Graphics2D旋转方法。有什么区别?

时间:2014-09-16 04:37:07

标签: java graphics2d

Java API并没有真正解释这一点,我仍然不确定。

这两个Graphics2d重载方法调用之间有什么区别?

public abstract void rotate(double theta)

public abstract void rotate(double theta,
      double x,
      double y)

Java Doc就在这里:

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#translate%28int,%20int%29

我从文档中得到的是第二个旋转方法转换图形对象,旋转它并将其翻译回来。我的困惑在于,如果已经将图形转换回上一个原点,那么绘制图形的位置是适合的。

如果旋转了图形,我可以离开之前的坐标系(原点位于(0,0))并让所有内容都结束我所期望的位置吗?

我的目标是围绕图像中心旋转图形(因此转换),然后旋转并重绘图像。之后,我想将图形重置为正常(或者只是丢弃该版本的图形?)。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果我没记错,Graphics2D#rotate(double)围绕Graphics上下文的左上角(基于它的当前转换)旋转,其中Graphics2D#rotate(double, double, double)允许您定义锚点将围绕Graphics上下文轮换。有时候,你只需要试一试