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))并让所有内容都结束我所期望的位置吗?
我的目标是围绕图像中心旋转图形(因此转换),然后旋转并重绘图像。之后,我想将图形重置为正常(或者只是丢弃该版本的图形?)。
提前感谢您的帮助。
答案 0 :(得分:1)
如果我没记错,Graphics2D#rotate(double)
围绕Graphics
上下文的左上角(基于它的当前转换)旋转,其中Graphics2D#rotate(double, double, double)
允许您定义锚点将围绕Graphics
上下文轮换。有时候,你只需要试一试