소개하다
이것은 이전 질문에 대한 후속 조치입니다.여기.
태블릿을 프로젝터에 연결하면 해상도 변경으로 인해 펜이 더 이상 보정되지 않습니다. 내가 찾은ArchLinux의 이 위키 게시물숫자가 다음과 같은 경우를 제외하면 내가 해야 할 일을 정확히 수행합니다.조금떠나다. 내가 한 일은 다음과 같습니다.
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
그럼 내 질문은 이렇습니다
변환 행렬의 정확한 값을 찾는 방법은 무엇입니까? 다른 해상도를 사용해야 하는데 모든 해상도에 대해 시행착오 과정을 반복할 수 없습니다!