天天看點

LCD與觸摸屏坐标轉換

想要 弄明白LCD螢幕坐标和觸摸屏坐标的關系,得先從LCD觸摸屏的結構說起。一般我們接觸到的觸摸屏都有兩層,一層是純粹的LCD液晶顯示面闆,其上就是一層透明的觸摸屏薄膜。要說的是,LCD顯示屏和觸摸屏都有各自的分辨率名額,也就相當于它們的坐标系,現假定他們的坐标系分别為(x,y)和(X,Y)。就像我所測試的LCD顯示屏的分辨率為1024*600,它的坐标原點(0,0)是左上角,右下角坐标為(1024,600),而觸摸屏也有它本身的坐标原點O(實體的,固定的,在螢幕中的某一位置,很可能該原點在裝配過程中已經被切割掉,但沒關系,不影響坐标确定)。

=====================================================================

在實際使用過程中,我們不會關心某 個時刻觸摸屏的具體坐标是什麼,我們所關心的是在LCD屏的坐标系(x,y),然而驅動程式得到的卻是觸摸屏的坐标系(X,Y),那麼我們怎麼把兩個2維線性坐标系通過幾個采樣值,對應起來,即(X,Y)—>(x,y), 例,具體的做法是:

————————-

(1)取定LCD螢幕的四個角的坐标作為采樣值(因為在沒有其他工具的情況下,隻有這四個點才知道确切的坐标(x1,y1),(x2,y2),(x3,y3),(x4,y4))

————————-

(2) 運作之前做的 輸入裝置檢測程式 ,分别點選LCD的四個角,在程式中讀出這些點對應的觸摸屏坐标值(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4)

————————-

(3) 将這四個采樣值代入如下方程,求解出方程中的7個系數(a,b,c,d,e,f,s),就可以得到兩個坐标系的對應關系了:

             sx=aX+bY+c, sy=eX+fY+g 

           假定s=65535

           sx1=aX1+bY1+c

           …..

           sy1=eX1+fY1+g

           …..

————————

上面的情況是普遍适用的, 全面,精度較高,但求解的未知數多,需要的采樣值也多; 事實上,現在的裝配工藝完全可以保證兩個坐标系的相位差為90度的整數倍, 也就是說,上面的對應方程簡可化為

{ x=aX+b, y=cY+d     } 或者 { x=aY+b, y=cX+d }

這樣,隻需要2組采樣值, 就可以确定對應系數!     兩個坐标系的對應關系就明确了, 一切觸摸屏坐标都将根據這個對應關系式轉化成LCD坐标系中相應的坐标。

繼續閱讀