我有一个 Graphics2D
对象,用它在我的 Canvas
上绘图。我在 Canvas
上绘制了多个形状,并且只想变换其中一个(或部分)。
我会尽量保持简单:
void render(Graphics2D g) {
... // Draw shape 1
... // Draw shape 2
... // Draw shape 3
}
如何在保持形状 1 和 3 不变的情况下旋转形状 2? 我所说的“旋转”是指围绕其中心点旋转,我们可以将其定义为 x
和 y
例如。
我一直在寻找一种方法来做到这一点,但找不到任何能按照我想要的方式工作的东西。
有什么简单的方法可以做到这一点吗?
最佳答案
不要围绕其中心点旋转形状,而是旋转然后平移 Canvas 。要围绕形状中心 (x, y)
旋转,请首先将 Canvas 平移 (-x, -y)
,然后旋转 Canvas - d
度并在 (0,0) 处正常绘制形状。
完成后,向后旋转,然后向后平移(请注意,对于这些几何变换,顺序很重要,平移然后旋转将给您带来完全不同的结果)。
这意味着您仍然可以以任意旋转方式绘制对象,而无需自己重新计算坐标。
关于java - Graphics2D - 在 Graphics2D 对象上旋转形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313526/