当前位置: 首页 > 知识库问答 >
问题:

如何在java中围绕特定点而不是图像中心旋转图像?[副本]

曾元忠
2023-03-14

到目前为止,我一直在使用

Graphics2D.rotate(Math.toRadians(-1), newImage.getWidth() / 2, newImage.getHeight() / 2);

以旋转 OMR 应用程序的图像。结果是一个旋转但模糊的图像。我也怀疑这会围绕其中心旋转图像。如何将特定的像素位置指定为旋转中心?

共有1个答案

薄鸿远
2023-03-14

我怀疑这会使图像围绕中心旋转

你说得对,你需要

g2.rotate(Math.toRadians(-1), (newImage.getWidth() / 2) + 1, (newImage.getHeight() / 2) + 1);

由于坐标从左上角位置 0, 0(而不是 1 1)开始,因此您需要将 1 添加到每个分割宽度以获得中心。

如何将特定像素位置指定为旋转中心?

正如@MadProgrammer在他的评论中所说,x 和 y 参数是旋转的第 2 和第 3 个参数,因此这些是相对于图像的像素位置。

 类似资料:
  • 当我尝试使用旋转图像视图时,我现在开始学习JavaFX 它绕着它的中轴线旋转,但是当我尝试使用 它随机旋转,我不知道它的旋转轴是一样的

  • 问题内容: 我有一个512x512像素的2D图像,我想在某个原点(旋转中心)以某个角度旋转。一直以来,我都使用Scipy的旋转方法来旋转图像。但是,我迷迷糊糊,因为旋转始终围绕图像的中心进行。对于512x512像素,旋转中心应围绕点(x,y)128,128。如何使用自定义旋转中心旋转图像,比方说(x,y)20,128? 问题答案: 如果不能使用OpenCV,则可以使用NumPy()和SciPy()

  • 问题内容: 有没有一种简单的方法可以围绕图片中心旋转图片?我首先使用了AffineTransformOp。看起来很简单,而且需要,并且在一个整洁的Google会话中为矩阵找到正确的参数。所以我认为… 我的结果是这样的: 如果您忽略旋转90度的倍数的情况,这非常简单(sin()和cos()无法正确处理)。该解决方案的问题在于,它围绕图片左上角的(0,0)坐标点进行变换,而不是围绕图片中心进行正常的变

  • 我想根据用户点击将位图图像旋转10度。跟着无数的stackoverflow和google answers,我尝试了矩阵旋转的各种组合。 然而,图像并没有真正像预期的那样旋转,并给出了一个关于画布中心旋转振荡的抖动视图。为了测试,每次调用object的draw方法时,我都将旋转角度增加10度(而不是点击)。图像是一个对称的圆[64x64包围矩形],我希望它像轮子一样绕着自己的中心在屏幕中心旋转,但它

  • 问题内容: 将转盘旋转到半圆形(北半球)图像的顶部作为背景。范围可以是0-180度。输入进行画布转换的方法时,刻度盘将旋转并停在匹配的值上。这是我根据phrogz传递的帮助和示例进行的尝试 问题答案: 通常,您要执行的操作是: 将上下文转换为画布上对象应旋转的点。 旋转上下文。 通过对象内旋转中心的负偏移来转换上下文。 在0,0处绘制对象。 在代码中: 这是一个实际的示例,展示了这一点。(旋转的数

  • OpenGL总是围绕(0,0,0)旋转。但是我需要绕着相机旋转。我知道在GL中,没有相机,但是如果我翻译回(0,0,-6.0),它会绕着(0,0,0)旋转,而不是绕着(0,0,-6.0)旋转 所以我的问题是:如何在opengl和c中设置旋转中心 我已经找到了这篇文章:OpenGL围绕一个点旋转相机 显示此解决方案的地方: 旋转函数通常围绕原点旋转。要围绕另一个点P旋转,必须:平移(-P)旋转平移(