"); //-->
四线电阻屏的触摸板坐标和屏坐标有如下关系:
X0 = xfac * X + xoff;
Y0 = yfac * Y + yoff;
其中X0,Y0是屏的物理坐标,xfac,yfac为x,y方向的比例因子,xoff,yoff为x,y方向的偏移量.
既然说到了校准,那么这四个量肯定是不变的,所以我们可以用至少两个屏的物理坐标点就可算出这四个量,也即是两点校准法,由于按下屏后读出的是X,Y值,而校准时用的X0,Y0也是已知的,那么就是解四元一次方程组了,算法如下:
(X1,Y1)和(X2,Y2)是用于校准时屏上显示的两个点,这两个点的坐标必须不一样,是已知的;
(x1,y1)和(x2,y2)是校准时读取的被按下的两点的触摸板坐标值;
有如下方程组:
X1 = xfac * x1 + xoff; // 1
Y1 = yfac * y1 + yoff; // 2
X2 = xfac * x2 + xoff; // 3
Y2 = yfac * y2 + yoff; // 4
解得:
3 - 1 得xfac = (X2 - X1)/(x2 - x1); //得到x轴方向的比例因子
3 + 1 得xoff = [(X2 + X1)-xfac(x2 + x1)]/2; //得到x轴方向的偏移量
4 - 2 得yfac = (Y2 - Y1)/(y2 - y1); //得到y轴方向的比例因子
4 + 2 得yoff = [(Y2 + Y1)-yfac(y2 + y1)]/2; //得到y轴方向的偏移量
OK! 所谓的三点触摸校准,四点触摸校准只不过是加了可靠的滤波算法,因为触摸笔和屏的接触不是很准确的!而像素点是很小的,所以通常都用四点校准,而且经验证这此算法是必须加的,否则很不准,参见STM32学习笔记相关实验实验例程,已验证通过。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。