我使用 2 个显示器(左侧为 1920x1080 触摸屏,右侧为 1440x900)。如果我使用
xinput set-prop "Acer T230H" "Coordinate Transformation Matrix" 0.566 0 0 0 .71111 0 0 0 1
(作为矩阵值)
0.566 0 0
0 0.71111 0
0 0 1
x 坐标计算正确,但 y 坐标必须乘以 ~1.2 才正确。
我必须将我的 1.2 放在哪里?
答案1
如果要缩放 y 坐标,则应将 0.71111 乘以缩放因子 1.2。一般公式为:
如果矩阵是
a b c
d e f
g h i
那么公式就是
new_x = (a * old_x + b * old_y + c) / (g * old_x + h * old_y + i)
new_y = (d * old_x + e * old_y + f) / (g * old_x + h * old_y + i)
这是一个投影变换。在几乎所有情况下(意思是,除非您的显示器是斜投影到墙上的投影仪,否则所有情况都是如此),您只需要线性变换,因此您将 设置g h i
为0 0 1
。
如果您要做更高级的事情,那么您应该知道,为了进行此计算,old_x/new_x 等在 0 到 1 之间的范围内。