紹介する
これは前の質問に対するフォローアップです。ここ。
タブレットをプロジェクタに接続すると、解像度の変更によりペンは補正されなくなります。私が見つけたArchLinuxのこのwiki投稿数字が次の場合を除いて、私がしなければならないことを正確に行います。少し去る。私がしたことは次のとおりです。
xrandrから次のようになります。
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
LVDS1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm
1366x768 60.02 +
1280x720 60.00
1024x768 60.00*
1024x576 60.00
...
+があるのがモニターがサポートする最大解像度、*があるのが現在の解像度です。だから私は結論を下しました。
total_width = 1024
touch_area_width = 1366
touch_area_x_offset = (1024 - 1366) /2 = -171
私は本当に必要なものを手に入れなかったので、おそらく私が間違っているのかもしれませんが、ほとんどすべてが来ました。
次に、xinput listの出力を表示します。
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M325 id=9 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Pen stylus id=10 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Finger id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Pen eraser id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
4,5,8行が私に必要なものなので、デバイス名は「Wacom ISDv4 E6 Pen stylus」、「Wacom ISDv4 E6 Finger」、「Wacom ISDv4 E6 Pen Esper」です。
xinput list-props "device name" | grep Matrix
現在の座標変換行列をリストする必要があります。デフォルトは行単位の行列です。
Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
変換行列は行列です
[ c0 0 c1 ]
[ 0 c2 c3 ]
[ 0 0 1 ]
チュートリアルでは、次のように行列を計算します。 (右の数字は私が計算した数字です。)
c0 = touch_area_width / total_width = 1366/1024 = 1.333984375
c2 = touch_area_height / total_height = 768/768 = 1
c1 = touch_area_x_offset / total_width = -171/768 = -0.22265625
c3 = touch_area_y_offset / total_height = 0/768 = 0
c2=1 と c3=0 の理由は、私の場合は高さが大丈夫なので、幅を調整して移動すればよいからです。
今やるべきことは、行列を行配列として表現することだけです。つまり、次のようになります。
c0 0 c1 0 c2 c3 0 0 1
私にとっては、次のようになります。
1.333984375 0 -0.22265625 0 1 0 0 0 1
その後、次のコマンドを翻訳する必要があります。
xinput set-prop "DEVICE NAME" --type=float "Coordinate Transformation Matrix" 1.333984375 0 -0.22265625 0 1 0 0 0 1
これは私が望むところにほとんど到達しましたが、まだ到達していません。それで試行錯誤を経て次のような数字を得ました。1.345 0 -0.17 0 1 0 0 0 1
だから私の質問はこれです
変換行列の正確な値を見つけるには?異なる解像度を使用する必要がありますが、すべての解像度に対して試行錯誤プロセスを繰り返すことはできません。