タッチスクリーンを構成するには、この行列計算で何を乗算すればよいですか?

タッチスクリーンを構成するには、この行列計算で何を乗算すればよいですか?

私は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 の範囲にあることを知っておく必要があります。

関連情報