转换鼠标点

时间:2014-09-11 22:43:20

标签: c# math

我有两张图片,imageA = 800x600尺寸,另一张图片B = 1440x900。例如,如果我在50x50坐标处单击imageA,如何将imageB的值转换为正确的位置?

3 个答案:

答案 0 :(得分:0)

newX = x * 1440 / 800;
newY = y * 900 / 600;

答案 1 :(得分:0)

首先计算差异比率(newX / oldX),然后乘以。简而言之,就是你的实际例子:

int newX = (50*1440)/800;
int newX = (50*900)/600);

请注意,由于实际原因,我已将计算切换为显式倍增,否则您必须在两者之间进行浮动以避免意外舍入。

答案 2 :(得分:0)

此代码将整数坐标视为像素的中心,它也适用于边缘。

x2 = round((x + 0.5) * 1440.0 / 800.0);
y2 = round((y + 0.5) * 900.0 / 600.0);

编辑:这假设(0,0)是你的角落而不是(1,1)。情况通常如此。