glenyang
驱动牛犊
驱动牛犊
  • 注册日期2004-07-14
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2222回复:1

WinCE下触摸屏坐标校准的问题

楼主#
更多 发布于:2004-07-14 14:55
在WinCE下遇到一个触摸屏坐标校准的问题,请教各位大侠:

我的情况是这样:我的触摸屏通过RS232由串口和CPU通信,对触摸屏我是不可控制的,当触摸触有摸屏事件时,我直接从串口获取原始坐标数据。在WinCE下,我在pdd的DdsiTouchPanelGetPoint()函数中把串口获取的数据返回给mdd,在该函数中,我使用了TouchSampleIsCalibratedFlag标志,自己对坐标进行了校准,校准如下;

触摸屏的分辨率为4096 x 4096,我通过对触摸屏四个点的坐标测定,得到:(左上角)显示屏的(0,0)对应于触摸屏的(310,3440),(右下角)显示屏的(3200,2400)对应于触摸屏的(3630,370),于是我用下面公式进行坐标校准计算:

X = (int) (3200 * (x-310)/(3630-310));
Y = (int) (2400 * ((3440-y)/(3440-370));

算出来的X,Y坐标就是返回给mdd的校准后的坐标。测试时,我发现有的坐标基本上可以校准(主要是左上角显示器坐标原点附近的点),有的坐标则有较大的偏差,而且偏差的方向和幅度也不一样,在屏幕上边,向上偏差一段距离,在屏幕中间和下边,向下偏差了一段距离.

请教各位大侠,出现这种情况是由于什么原因引起的?是不是我的校准方法不对啊?

万分感谢!
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-16 11:36
建议:
1、先测试一下触摸屏的数据,看触摸屏给的数据是否是线性的,有的触摸屏比较差,偏差比较多。
2、看x,y是否反了。
3、用四点校正,取屏暮上四个点,上下取平均再用两点校正。
4、祝好运
游客

返回顶部