LCD触摸屏的屏幕坐标与触摸屏坐标???

技术输出者 2009-11-11 11:03:47
屏幕坐标原点 一般在左上
那么触摸屏坐标原点在那里呢?网上有人说右上有人说右下还有说左下的,把我搞晕了!!

还有platform.reg注册表中的触摸屏信息
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH]
"MaxCalError"=dword:7
; portrait
;for 240x320 display
"CalibrationData"="469,636 785,1068 162,1056 163,220 785,216 "
; Landscape
; "CalibrationData"="515,503 763,748 258,749 269,255 764,255 "
ENDIF BSP_NOTOUCH !
是屏幕上五个点(四个角和正中)在触摸屏上的坐标值。这跟触摸屏原点位置有关系吗!!!

PS:mini2440换了最新的bsp后,触摸屏有问题,好像是反的。想通过改写触摸屏驱动解决下!!

...全文
1923 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcdzyq 2009-11-11
  • 打赏
  • 举报
回复
LCD及触摸屏原点在左上或右下是根据具体电路来定的,如果是反的可以通过坐标变换来实现.

以下思路供参考,自己实现时可以更灵活

假设LCD 分辨率是320*240,坐标原点在左上角;触摸屏分辨率是900*900,坐标原点在左上角,则转换公式
如下:
xLCD=[320*(x-x2)/(x1-x2)];
yLCD=[240*(y-y2)/(y1-y2)];
如果坐标原点不一致,比如LCD 坐标原点在右下角,而触摸屏原点在左上角,则还可
以进行如下转换:
xLCD=320-[320*(x-x2)/(x1-x2)];
yLCD=240-[240*(y-y2)/(y1-y2)];

仅供参考
技术输出者 2009-11-11
  • 打赏
  • 举报
回复
嗯 ,明白了,谢谢大家!!
stoneqiang 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lyx_wq 的回复:]
引用 5 楼 stoneqiang 的回复:
Landscape 
;      "CalibrationData "= "515,503  763,748  258,749  269,255  764,255 


帮你算了一下你这数据,是在右下角为坐标原点的(水平方向是Y,垂直方向是X)
你按照触摸屏校正顺序就可以算出来了

谢谢!!!
要用这种形式吗
xLCD=320-[320*(x-x2)/(x1-x2)];
yLCD=240-[240*(y-y2)/(y1-y2)];
使这个意思吧



[/Quote]

公式其实可以自己推的,我没用这个公司算
我是根据触摸屏校正的那几个值和校正顺序(中间,左上,左下,右下,右上)来确定原点的,你可以用这方法验证一下那公式对不对,^_^
iwillbeback008 2009-11-11
  • 打赏
  • 举报
回复
以前没有注意过,路过关注一下!
技术输出者 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 stoneqiang 的回复:]
Landscape 
;      "CalibrationData "= "515,503  763,748  258,749  269,255  764,255 


帮你算了一下你这数据,是在右下角为坐标原点的(水平方向是Y,垂直方向是X)
你按照触摸屏校正顺序就可以算出来了

谢谢!!!
要用这种形式吗
xLCD=320-[320*(x-x2)/(x1-x2)];
yLCD=240-[240*(y-y2)/(y1-y2)];
使这个意思吧




[/Quote]
技术输出者 2009-11-11
  • 打赏
  • 举报
回复
分辨率320*240 和分辨率 240*320啥区别啊??我怎么感觉一样呢!!不就是x轴和y轴颠倒下
stoneqiang 2009-11-11
  • 打赏
  • 举报
回复
Landscape
; "CalibrationData "= "515,503 763,748 258,749 269,255 764,255


帮你算了一下你这数据,是在右下角为坐标原点的(水平方向是Y,垂直方向是X)
你按照触摸屏校正顺序就可以算出来了


wliaoc 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tcdzyq 的回复:]
LCD及触摸屏原点在左上或右下是根据具体电路来定的,如果是反的可以通过坐标变换来实现.

以下思路供参考,自己实现时可以更灵活

假设LCD 分辨率是320*240,坐标原点在左上角;触摸屏分辨率是900*900,坐标原点在左上角,则转换公式
如下:
xLCD=[320*(x-x2)/(x1-x2)];
yLCD=[240*(y-y2)/(y1-y2)];
如果坐标原点不一致,比如LCD 坐标原点在右下角,而触摸屏原点在左上角,则还可
以进行如下转换:
xLCD=320-[320*(x-x2)/(x1-x2)];
yLCD=240-[240*(y-y2)/(y1-y2)];

仅供参考
[/Quote]
也有左右或者上下对调的
stoneqiang 2009-11-11
  • 打赏
  • 举报
回复
帮顶一下,之前都没考虑过这问题
你可以按照自己的想法试一下应该就知道了吧
试好发出来给大家看看
技术输出者 2009-11-11
  • 打赏
  • 举报
回复
这么说 也就四种情况了!准备一种一种试 好了结贴!!

19,523

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧