【雜項】手動進行軟體觸控校準,簡單的區間對映。
阿新 • • 發佈:2021-08-05
客戶需要,做一下說明,原理如下。
static int map(int x, int in_min, int in_max, int out_min, int out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
若顯示螢幕尺寸 x y w h 為 0, 0, 640, 480
而觸控式螢幕幕可能不完全等於顯示屏大小,例如可能為 10, 0, 680, 460
假設輸入點 X = 320 則可以通過公式 (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min 進行對映
則 in_min, in_min, out_min, out_max = 10, 680, 0, 640 結果為 (320 - 10) * (640 - 0) / (680 - 10) + 0 = 296 。
即可知 觸控式螢幕上的 320 等於實際顯示屏上的 296 , 則 Y 軸 同理。
圖例如下:
所以你要找到觸控式螢幕的最大/最小值,配合顯示屏進行座標對映。
每次校準後,將其儲存,供下次讀取即可。
該方法只是線性簡單的校準方法,不能很好的表現出觸控式螢幕的特性,如果有更復雜的精度要求,則採用更復雜的公式,依葫蘆畫瓢即可。