3

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

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

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

谁能帮我解决这个问题。

4

2 回答 2

5

屏幕大小可能并不重要,我们关心的只是分辨率。

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

这给出了一个位于相同比例位置的坐标。(类似于图像上一个点的位置,当您调整它的大小时。)

示例伪代码:

function newCoords(oldCoords) {
    newCoords.x = oldCoords.x / oldResolution.x * newResolution.x;
    newCoords.y = oldCoords.y / oldResolution.y * newResolution.y;
    return newCoords;
}
于 2016-03-17T11:23:54.560 回答
0
public static Point GetRelativeCoordinates(Point absoluteCoordinates)
   {
       double x, y;

       Point newCoords = new Point();
       // if theese are not doubles it truncates to zero . 
       x = absoluteCoordinates.X;
       y = absoluteCoordinates.Y;

       newCoords.X = Convert.ToInt16( x / 1920 * Screen.PrimaryScreen.Bounds.Width);
       newCoords.Y = Convert.ToInt16( y / 1080 * Screen.PrimaryScreen.Bounds.Height);

       return newCoords;
   }
于 2017-02-28T17:51:44.530 回答