将 x,y 坐标从一种屏幕尺寸和分辨率外推到其他屏幕尺寸和分辨率

tec*_*ion 2 screen device coordinates squish extrapolation

快点我有什么!!我有一个定义的屏幕尺寸(5.5 英寸)和分辨率(500 像素宽度和 350 像素高度),并且我在这个屏幕上有某个位置(x,y)的坐标。

我会有什么!!我将有新屏幕尺寸(8.2 英寸)和分辨率(1020 px 宽和 730 px 高)的规格。

我需要计算/推断/查找什么?我需要在具有新分辨率的新屏幕尺寸上找到相同的 x,y 位置。而且我需要一个可以在任何屏幕尺寸或分辨率上工作的通用解决方案。

任何人都可以帮我解决这个问题。

小智 5

屏幕大小可能无关紧要,我们只关心分辨率。

给定旧坐标,我们可以除以旧分辨率,再乘以新分辨率。

这给出了处于相同比例位置的坐标。(类似于调整图像大小时点在图像上的位置。)

示例伪代码:

function newCoords(oldCoords) {
    newCoords.x = oldCoords.x / oldResolution.x * newResolution.x;
    newCoords.y = oldCoords.y / oldResolution.y * newResolution.y;
    return newCoords;
}
Run Code Online (Sandbox Code Playgroud)