LCD触摸屏中LCD屏幕坐标和触摸屏坐标的关系

想要弄明白LCD屏幕坐标和触摸屏坐标的关系,得先从LCD触摸屏的结构说起。一般我们接触到的触摸屏都有两层,一层是纯粹的LCD液晶显示面板,其上就是一层透明的触摸屏薄膜。要说的是,LCD显示屏和触摸屏都有各自的分辨率指标,也就相当于它们的坐标系,现假定他们的坐标系分别为(x,y)和(X,Y)。就像我所测试的LCD显示屏的分辨率为1024*600,它的坐标原点(0,0)是左上角,右下角坐标为(1024,600),而触摸屏也有它本身的坐标原点O(物理的,固定的,在屏幕中的某一位置,很可能该原点在装配过程中已经被切割掉,但没关系,不影响坐标确定)。 ===================================================================== 
在实际使用过程中,我们不会关心某个时刻触摸屏的具体坐标是什么,我们所关心的是在LCD屏的坐标系(x,y),然而驱动程序得到的却是触摸屏的坐标系(X,Y),那么我们怎么把两个2维线性坐标系通过几个采样值,对应起来,即(X,Y)--->(x,y), 以我的机子为例,具体的做法是: 
------------------------- 
(1)取定LCD屏幕的四个角的坐标作为采样值(因为在没有其他工具的情况下,只有这四个点才知道确切的坐标(x1,y1),(x2,y2),(x3,y3),(x4,y4)) 
------------------------- 
(2) 运行之前做的 输入设备检测程序 ,分别点击LCD的四个角,在程序中读出这些点对应的触摸屏坐标值(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4) 
------------------------- 
(3) 将这四个采样值代入如下方程,求解出方程中的7个系数(a,b,c,d,e,f,s),就可以得到两个坐标系的对应关系了: 
       sx=aX+bY+c, sy=eX+fY+g 
      假定s=65535 
      sx1=aX1+bY1+c 
      ..... 
      sy1=eX1+fY1+g 
      ..... 
------------------------ 
上面的情况是普遍适用的, 全面,精度较高,但求解的未知数多,需要的采样值也多; 事实上,现在的装配工艺完全可以保证两个坐标系的相位差为90度的整数倍, 也就是说,上面的对应方程简可化为 
{ x=aX+b, y=cY+d   } 或者 { x=aY+b, y=cX+d } 

这样,只需要2组采样值, 就可以确定对应系数!   两个坐标系的对应关系就明确了, 一切触摸屏坐标都将根据这个对应关系式转化成LCD坐标系中相应的坐标。


关键在于确定触摸屏的原点。

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值