Graphics2D - Graphics2D对象上的旋转形状

Aci*_*dic 2 java swing graphics2d

我有一个Graphics2D用来绘制我的物体Canvas.我在它上面绘制了多个形状,Canvas并且只想转换它们中的一个(或部分).

我会尽量保持这个简单:

void render(Graphics2D g) {
    ... // Draw shape 1
    ... // Draw shape 2
    ... // Draw shape 3
}
Run Code Online (Sandbox Code Playgroud)

如何在保持形状1和3完好无损的情况下旋转形状2?通过"旋转"我的意思是旋转围绕其中心点,我们可以定义为xy的例子.

我一直在寻找一种方法来做这件事,但找不到任何可行的方式.

有没有简单的方法来做到这一点?

Mar*_*oot 5

而不是围绕它的中心点旋转形状,旋转然后平移画布.要围绕形状的中心旋转(x, y),首先平移画布(-x, -y),然后旋转画布-d角度并在(0,0)处正常绘制形状.

完成后,向后旋转然后平移(注意,通过这些几何变换,顺序很重要,平移然后旋转会给你一个完全不同的结果).

这意味着您仍然可以在任何旋转处绘制对象,而无需自己重新计算坐标.