发明内容
本发明的目的在于克服上述现有技术中存在的不足,提供一种能解决触摸屏在水平方向和垂直方向倾斜造成触点偏移的方法,使触摸屏映射到LCD屏幕的坐标更加精确,以解决触摸屏贴片倾斜和触摸屏老化偏移造成的点击不准的问题。
在本技术方案中,主要涉及触摸屏和LCD屏坐标的转换,其中触摸屏坐标/触点坐标是指用户通过触摸笔(或类似工具)点中触摸屏的触点位置,该位置用模拟电平经过模数转换(ADC)后的原始坐标值表示,这个值需要被映射到LCD坐标值后才能被人机界面识别;LCD坐标值是指LCD屏幕上的坐标,该坐标值必须在LCD宽高范围内,一般以左上角作为坐标原点(0,0),如图6所示;触摸屏坐标映射区域是指所有有效触点坐标映射值的集合;
在这里,触摸屏坐标到LCD坐标的映射是指触摸屏坐标和LCD屏幕坐标之间存在一对一映射的关系,虽然触摸屏坐标映射区域不是规整的矩形,如图3-1所示,仍然可以通过仿射计算来得到任意触点位置在LCD屏幕上的坐标。
本发明的技术方案为根据触摸屏坐标位置的不同,应用动态的比例来计算触摸屏坐标到LCD坐标的映射值,对梯形和平行四边形的变形进行补偿,具体包括以下步骤:
①用户对触摸屏进行5点校准,5点为预设的中心、右上、左上、右下、左下五个LCD坐标点;
②手机处理芯片基于5点校准过程中所获取的5点在触摸屏上的坐标值、LCD尺寸参数、5点原设定的LCD坐标值、和触摸屏线段在LCD屏上的映射线段成比例的关系,确定四个角顶点的触摸屏坐标;
③每次用户接触触摸屏,手机处理芯片根据步骤②得到的四个角顶点的触摸屏坐标、和平行线分线段成比例的原理,将所得触摸屏坐标映射成LCD屏坐标,在LCD屏上显示。
所述步骤①如校准不成功,即5个触点坐标值与前一次获得的触点坐标值的差值都在容许的变动范围外,则重复步骤①继续校准。
所述步骤①中右上、左上、右下、左下预设的四点到LCD边缘距离相等。
所述步骤②中还包括以下步骤:将触摸屏和LCD屏坐标按各边中点分作一一对应的四个区域。
所述步骤③中的将所得触摸屏坐标映射成LCD屏坐标时,是先确定映射的对应区域,再以区域边界为基准,推算所映射的LCD屏坐标。
所述步骤③中的将所得触摸屏坐标映射成LCD屏坐标时,还包括触点坐标的预判,判断其落点是否在有效区域内。
上述技术方案带来如下有益技术效果:
本发明根据触摸屏坐标位置的不同,应用动态的比例来计算触摸屏坐标到LCD坐标的映射值,对梯形和平行四边形变形进行补偿,且利用5点坐标值将屏幕划分为多个一一对应的映射区域,使触摸屏映射到LCD屏幕的坐标更加精确,解决了触摸屏贴片不准和触摸屏老化造成的点击不准的问题。
具体实施方式
下面结合附图和具体的实施例来对本发明对触摸屏坐标映射到LCD坐标的过程做进一步的详细说明,但不能以此来限制本发明的保护范围。
本实施例选用帝晶1.8时LCD显示屏,该LCD宽高为WLCD=128px和HLCD=160px,为了提高计算效率,右上、左上、右下、左下四点和边缘的距离为L=5px,即预先设定的5点坐标为(64,80)、(5,5)、(5,155)、(123,5)、(123,155),px表示以像素为单位。
请看图4,图4为本发明对手机中触摸屏进行校准后得到的触摸屏坐标映射区域,该区域通过触摸屏校验过程确定,并分成根据触摸屏四边的中点和中央点,将触摸屏分成四个区域,在映射过程中,仅有落在该区域内的触点才是有效触点并可以映射为LCD屏幕的对应区域内有效的LCD坐标,其中点S表示用户触点在触摸屏的坐标值。
将落在触摸屏上的触点映射到LCD上,其方法的具体工作流程如图1所示,包括如下步骤:
1.用户对触摸屏进行5点校准,5点为预设的中心、右上、左上、右下、左下五个LCD坐标点:
a)用户进入触摸屏校准界面。用户在第一次打开手机时,程序会在开机阶段显示触摸屏校准界面,另外用户也可以在“系统设置″菜单中选择″触摸屏校准″选项开启触摸屏校准界面;
b)进入触摸屏校准界面后,十字光标将依次出现在中央,左上角,右上角,左下角和右下角,如图2-1至图2-5所示,用户按照屏幕提示逐个进行点击;
c)手机处理芯片将记录用户5次点击的触摸屏坐标,如果上述步骤得到的5个触点坐标值与前一次获得的触点坐标值的差值都在容许的变动范围内,则报告校准成功并结束校准,否则转到步骤b)继续校准。
2.手机处理芯片基于5点校准过程中所获取的5点的触摸屏坐标值、LCD尺寸参数、5点原设定的LCD坐标值、和触摸屏线段在LCD屏上的映射线段成比例的关系,确定四个角顶点的触摸屏坐标,这里,在步骤1中获取的5点校准坐标触摸屏坐标值分别为A’(405,514)、B’(595,814)、C’(134,816)、D’(700,124)、E’(150,119):
a)校准成功后,我们可以得到5点的触摸屏坐标,但靠近顶点的4个点位置是为了用户方便点击而设置的(如图2-2至2-5),即图3-1中的B’(595,814)、C’(134,816)、D’(700,124)、E’(150,119),并不能表示触摸屏真正的顶点坐标,即图3-1中的B、C、D、E。为了得到触摸屏的四角顶点坐标,如还需要重定位顶点坐标。我们以计算顶点B坐标来说明顶点坐标重定位的过程,如图3,图3-1为四角顶点触摸屏示意图,图3-2为为四角顶点LCD示意图,用户在触摸屏中心点为A,对应LCD屏幕用Alcd表示,触摸屏左上角的校准点为B’,对应LCD屏幕用B’lcd表示,触摸屏左上角顶点为B,对应LCD屏幕用Blcd表示。由于点A,B’,B和Alcd,B’lcd,Blcd的存在物理上的对应关系,因此,
设上述坐标分别表示为A(x
A,y
A),B(x
B,y
B),B’(x′
B,y′
B),
鉴于已设定LCD宽高为W
LCD和H
LCD,B
LCDD
LCD到B′
LCD D′
LCD的水平距离为L,B
LCDC
LCD到B′
LCD C′
LCD的垂直距离也为L,从而可以导出x,y方向坐标存在以下等式。
由于A(xA,yA),B’(x′B,y′B)都为已知,可以得到B表示的左上角顶点坐标为,
同样可证,上述公式其他顶点坐标计算同样有效,令 顶点坐标计算公式可表示为,
x=(1+α)·x′-α·xA
y=(1+β)·y′-β·yA(式1)
其中,x′∈{x′B,x′C,x′D,x′E},y′∈{y′B,y′C,y′D,y′E}x∈{xB,xC,xD,xE},y∈{yB,yC,yD,yE}。
这里,WLCD=128px、HLCD=160px、L=5px。
已知所预设的四个校准点的LCD坐标为触摸屏坐标坐标分别为:B’lcd(5,5),C’lcd(123,5),D’lcd(5,155),E’lcd(123,155);该四个校准点的触摸屏坐标为B’(595,814)C’(134,816)D’(700,124)E’(150,119);及LCD屏幕的四角定点坐标为:Blcd(0,0),C’lcd(128,0),D’lcd(0,160),E’lcd(128,160);则按照公式1,可得四个角的触摸屏坐标分别为A(405,514),B(612,834),C(112,837),D(725,99),E(129,93),如图3-1所示。
b)将步骤a)得到的触摸屏中心点坐标和4个角顶点坐标表示为A(xA,yA),B(xB,yB),C(xC,yC),D(xD,yD),E(xE,yE),可以根据这5点计算得到如图3-1所示的LCD屏幕四条边的中点U,V,P,Q四个点,具体计算方法如下:
i.设定上述坐标值分别表示成A(xA,yA),B(xB,yB),C(xC,yC),D(xD,yD),E(xE,yE),P(xP,yP),U(xU,yU),Q(xQ,yQ),V(xV,yV)。
ii.P坐标的计算,设P为过A的水平线和直线BD的交点,得到
yP=yA(式2)
iii.Q坐标的计算,设Q为过A的水平线和直线CE的交点,
yQ=yA(式3)
iv.U坐标的计算,设 则有
(式4)
v.V坐标的计算,设 则有
(式5)
已得A(405,514),B(612,834),C(112,837),D(725,99),E(129,93),按照公式2~公式5,得到坐标U(375,835),V(443,97),P(661,514),Q(119,514),这9点将触摸屏分成4个区域,分别是由B,U,A,P围成的1区,由U,C,Q,A围成的2区,由P,A,V,D围成的3区,由A,Q,E,V围成的4区,如图4所示。
3.每次用户接触触摸屏,手机处理芯片根据步骤②得到的四个角顶点的触摸屏坐标、和平行线分线段成比例的原理,将所得触摸屏坐标映射成LCD屏坐标,在LCD屏上显示,设定上述坐标值分别表示成S(xS,yS),具体为S(202,306),T(xT,yT),为S点在LCD屏上的映射点,即所求坐标:
a)首先应用下面的判别条件判断用户输入的触点S落在哪个区域:
由公式1得到,ys=306<ya=514并且 因此S在第4区域。
b)计算点S到所在区域四边的垂线距离,如图5,点S表示用户触点在触摸屏的坐标值,点S落在4个区域之一,由点S引出的4条线段分别是到它所在区域四边的垂线。设定四角坐标值分别为A(x1,y1),Q(x2,y2)V(x3,y3),E(x4,y4),则计算得到各垂线距离如下:
(式7)
四角坐标值由步骤2已得,分别为A(405,514),Q(119,514),V(443,97),E(129,93),按公式7计算得到各垂线距离为LS⊥LEFT=221,LS⊥RIGHT=79,LS⊥TOP=208,LS⊥BOTTOM=212。
c)根据点S到所在区域四边的垂线距离,如图5所示,计算点S到LCD坐标的映射值,并在LCD上显示;
(式8)
其中,WLCD,HLCD表示LCD屏幕的宽度和高度,XSECTION,YSECTION表示不同区域的坐标补偿值,如下:
(式9)
计算点S到所在区域四边的垂线距离,如图5。根据点S到所在区域四边的垂线距离,计算点S到LCD坐标的映射值,由公式8,9,得到T(111,119),LCD显示该点后,在触摸屏上的效果如图6所示。
为了比较本发明映射方法和传统映射方法的计算结果,我们用触摸笔在LCD屏上划出三条水平线和三条垂直线。图7显示了触摸屏上原始触点的轨迹,可以看出,触摸屏本身存在明显的倾斜,垂线在触摸屏上的轨迹与水平轴的夹角和理想的90度角相差很大。传统映射方法由于使用了固定的映射公式,无法消除触摸屏坐标中已有的的倾斜,将这种倾斜引入了计算结果,在LCD屏上显示的效果如图8-2。而本发明方法在映射过程中动态的补偿了触摸屏变形而引起的坐标偏移,其LCD屏上的最终显示效果如图8-1所示,成功的消除了倾斜,还原了用户的触摸屏输入。