Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2998745
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2010-07-13 23:41:59

先记下来4线电阻式触摸屏的校正算法, 以免以后忘记了
|----------------|
|                |
| A +       B +  |
|                |
|      E +       |
|                |
|                |
| C +       D +  |
|                |
|----------------|
屏中有5个点(+), 我们知道 A,B,C,D,E这 5个点的实际坐标
A(Xa,Ya), B(Xb,Yb), C(Xc,Yc), D(Xd,Yd), E(Xe,Ye)
 
使用触摸屏依次点这 5个坐标,得到这5个点的逻辑坐标(可以采样10次或更多),
A(Xla,Yla), B(Xlb,Ylb), C(Xlc,Ylc),D(Xld,Yld) ,D(Xld,Yld)
然后通过以下算法算出 KX和 KY的系数:
KX = ((Xb-Xa)/(Xlb-Xla) + (Xd-Xc)/(Xld-Xlc))/2
KY = ((Yc-Ya)/(Ylc-Yla) + (Yd-Yb)/(Yld-Ylb))/2
 
得出 KX和KY后,将 KX,KY,Xe,Ye,Xle,Yle写入到 touchver这个文件中
看起来 E点的坐标好像没有用到,其实不然,在逻辑坐标转换成物理坐标的过程中就需要用到这个E点的坐标.
 
下面是一个逻辑坐标转换成物理坐标 的例子,
先读取 touchver的文件, 以 E点坐标为基准进行转换
Xp = Xe + KX * (Xl-Xle)
Yp = Ye + KY * (Yl-Yle)
 
其中Xl,Yl是读回来的逻辑坐标
阅读(1181) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~