java - Graphics2D - 在 Graphics2D 对象上旋转形状

标签 java swing graphics2d

我有一个 Graphics2D 对象,用它在我的 Canvas 上绘图。我在 Canvas 上绘制了多个形状,并且只想变换其中一个(或部分)。

我会尽量保持简单:

void render(Graphics2D g) {
    ... // Draw shape 1
    ... // Draw shape 2
    ... // Draw shape 3
}

如何在保持形状 1 和 3 不变的情况下旋转形状 2? 我所说的“旋转”是指围绕其中心点旋转,我们可以将其定义为 xy 例如。

我一直在寻找一种方法来做到这一点,但找不到任何能按照我想要的方式工作的东西。

有什么简单的方法可以做到这一点吗?

最佳答案

不要围绕其中心点旋转形状,而是旋转然后平移 Canvas 。要围绕形状中心 (x, y) 旋转,请首先将 Canvas 平移 (-x, -y),然后旋转 Canvas - d 度并在 (0,0) 处正常绘制形状。

完成后,向后旋转,然后向后平移(请注意,对于这些几何变换,顺序很重要,平移然后旋转将给您带来完全不同的结果)。

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

关于java - Graphics2D - 在 Graphics2D 对象上旋转形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313526/

相关文章:

java:如何使用 .txt 中的数据创建多个数组

java - Android API 9 按文件大小升序对文件列表进行排序

java - 如何使用 JPanel 设置按钮大小

Java Swing的drawString显示回声

java - 围绕中心旋转图表

java - 非windows系统中绝对路径的URL等价物是什么?

java - IO java 中的 Skip() 方法?

java - 框架和按钮

java - 在 swing 中显示生成的文件列表中的文件图标

java - 在awt中添加图像