分辨率和宽高比

时间:2014-09-24 22:40:56

标签: java math

我有一个1920x1080的屏幕和另一个1280x720的屏幕。它们都具有16:9的宽高比。

我有一个机器人,可以将鼠标移动到屏幕上的一组特定坐标上;例如,我可以在屏幕1920x1080上将鼠标移动到500x720。

将鼠标移动到与1280x720屏幕成比例的相同坐标500x720的等式是什么?

2 个答案:

答案 0 :(得分:2)

基本上你只需要将坐标乘以比例因子。下面,sxsy将是数字(在0-1区间内),从较大的屏幕转换为较小的屏幕坐标。

如果屏幕具有相同的宽高比,那么sx == sy,但在一般情况下不一定如此。

>>> w1, h1 = 1920., 1080.
>>> w2, h2 = 1280.,  720.
>>> sx, sy = w2/w1, h2/h1  # scale factors in horizontal and vertical dimensions
>>> x1, y1 =  500.,  720.
>>> x2, y2 = sx*x1, sy*y1
>>> x2, y2
(333.3333333333333, 480.0)

顺便说一下,要转换回另一个方向,比例因子将为1/sx1/sy

答案 1 :(得分:2)

m x n上的

1920x1080 screen m*(1280/1920) x n*(720/1080)

上的1280x720 screen