【问题标题】:Rotating an Object旋转对象
【发布时间】:2013-04-22 00:15:19
【问题描述】:

我知道如何旋转图像,但我将如何旋转实际的 Objet?我不能使用g2d.rotate();,因为我用paint() 方法绘制了多个东西,而我只想要一个不旋转。

【问题讨论】:

  • 如需尽快获得更好的帮助,请发布SSCCE。请注意,可以为一个对象旋转 Graphics,然后为其他所有对象旋转回来。
  • @AndrewThompson:IIUC,你可以保存和恢复转换,如图here
  • @Fiskpotatis 通过单击答案左侧的复选标记接受对您有帮助的答案。

标签: java swing rotation awt graphics2d


【解决方案1】:
  • 由于您的应用程序是 Swing 应用程序,因此您不想在 paint(...) 方法中绘制,而是在 JComponent 派生类的 paintComponent(...) 方法中绘制。
  • 要旋转单个对象,请考虑通过在原始对象上调用 create()、在新 Graphics 实例上调用 rotate(...)、使用新 Graphics2D 实例绘制旋转的项目,然后处理复制的对象来创建 Graphics 对象的副本图形对象。

【讨论】:

    【解决方案2】:

    您可以使用 java.awt.geom.AffineTransform 类转换图像或实现自己的旋转矩阵。

    旋转一个实际对象意味着您知道它的当前位置、方向和枢轴点。旋转矩阵就是解。

    http://en.wikipedia.org/wiki/Rotation_matrix

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 2014-12-28
      • 1970-01-01
      • 2015-08-02
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      相关资源
      最近更新 更多