터치스크린 + 비기본 해상도 = 잘못 정렬된 커서

터치스크린 + 비기본 해상도 = 잘못 정렬된 커서

저는 1366x768 촉각 화면을 갖춘 HP 노트북을 가지고 있습니다. 800x600의 해상도가 필요한 일부 키오스크 소프트웨어를 실행해야 하므로 xrandr로 설정했습니다.

xrandr --output eDP-1 --mode 800x600

괜찮아 보입니다. xrandr이 화면 비율을 유지하기 위해 화면 양쪽에 검은색 막대를 추가한 것 같습니다.

화면을 터치하면 문제가 발생합니다. 화면 중앙에서 더 멀리 터치할수록 커서가 더 많이 벗어납니다. 화면을 터치하면 측면 검정색 막대를 고려하여 커서 위치를 계산하는 것 같습니다. 실제 화면의 25%를 터치한다고 가정하면 커서는 보이는 화면의 25%에 배치되므로 정렬됩니다.

나는 사용해 보았다.이 링크터치스크린을 보정하려고 시도했지만 전혀 차이가 없습니다.

답변1

이미 알고 있듯이 터치스크린 좌표에서 화면 좌표로의 매핑은 변환 행렬에 의해 제어됩니다.

일반적으로 시스템에서는 터치 스크린이 전체 화면 영역에 걸쳐 있다고 가정하는데, 이는 대부분의 상황에서 맞습니다. 그러나 디스플레이 영역이 터치 영역보다 크거나(예: 다중 모니터) 작은 경우 해당 변환 행렬을 수정해야 합니다.

Coordinate Transformation Matrix전통적으로는 를 통해 설정해야 했습니다 xinput. 그러나 을 사용하고 있으므로 libinput두 가지 차이점이 있습니다.

  • 속성 xinput이 호출됩니다.libinput Calibration Matrix
  • 변환 행렬이 다르게 계산됩니다.

판단하여Reinderien의 게시물, "적절한 것은 역행렬 변환을 수행하는 것입니다".

솔직히 어떻게 해야 할지 모르겠지만 다행히 그는 다음과 같은 스크립트를 제공합니다.엑스칼, 터치스크린을 보정합니다.

전제 조건:

python3, tkinter, numpy( sudo apt-get install python3 pyhton3-tk python3-numpy터미널에서 실행하여 설치)

다운로드엑스칼그리고 그것을 실행합니다.

관련 정보