如何设置缩放中心?



我正在用java进行一些图形编程。目前,我可以缩放存储在 1D 数组中的图片图像。(它逐行存储(

我的代码像新职位在哪里?newpoz = (int)(x * scale) + (int)(y * scale) * width;

这给了我在数组中的位置。但它按 0,0 坐标缩放左上角的内容。如果屏幕显示,如何将其设置为中心?所以到屏幕.getWidth((/2;screen.getHeight((/2.

示范

有人可以帮忙吗?如果有任何问题,我会在评论中回答。

要缩放围绕某些中心(a, b)的像素坐标:

(x', y') = ([x - a] * scale + a, [y - b] * scale + b)

像以前一样使用pixelArray[y * width + x]获取原始像素数据,并使用新坐标类似地设置目标像素。

编辑:您可能还想查看双线性插值,因为如果直接使用当前的原始方法,可能会在最终图像中给出锯齿状边缘。

如果先将图像的中心转换为 (0,0(,然后缩放图像,然后向后平移图像,则将有效地缩放图像所需的居中。

  • x1 = x - screen_width/2
  • x2 = x1 * 比例
  • x3 = x2 + screen_width/2

y 轴同上。

通过一些数学,您可以一步完成所有操作。 运动留给学生。

但是,如果您遇到麻烦,请发布您的尝试,然后我们可以帮助您修复代码。

相关内容

  • 没有找到相关文章

最新更新