
我使用 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 之間的範圍內。