如何判断是多点触控技术还是单点触控

定义/多点触控
多点触控 (又称多重触控、多点感应、多重感应,英译为Multitouch或Multi-Touch)是采用 与硬件设备共同实现的技术,能在没有传统输入设备(如: 、 等。)下进行计算机的人机交互操作。 ,能构成一个 ( , ,墙壁等)或 ,都能够同时接受来自屏幕上多个点进行计算机的人机交互操作。
发展/多点触控
多点触控技术始于1982年由 发明的感应 指压的多点触控屏幕。同年贝尔实验室发表了首份探讨触控技术的学术文献。 1984年, 研制出一种能够以多于一只手控制改变画面的触屏。同时上述于多伦多大学的一组开发人员终止了相关硬件技术的研发,把研发方向转移至 及界面上。同年, 开始研究该领域。 1991年Pierre Wellner对多点触控 “数码服务台”,即支持多手指的提案,研制
出一种名为数码桌面的触屏技术,容许使用者同时以多个指头触控及拉动触屏内的影像。 1999年,“约翰埃利亚斯”和“鲁尼韦斯特曼”生产了的多点触控产品包括iGesture板和多点触控键盘。在2005年,被 收购。 2006年, 的Jefferson Y Han教授领导研发的新型触摸屏可由双手同时操作,并且支持多人同时操作。利用该技术,Jefferson Y Han在36英寸×27英寸大小的屏幕上,同时利用多只手指,在屏幕上画出了好几根线条。与普通的触摸屏技术所不同的是,它同时可以有多个触摸热点得到响应,而且响应时间非常短——小于0.1秒。 2007年,“ ”及“ ”分别发表了应用多点触控技术的产品及计划,令该技术开始进入主流的应用。
行业概况/多点触控
供求关系是一个AR行业能否快速发展的前提。目前来看,市场需求是很大的,而供应方面却略显不足,尤其是拥有核心知识产权,专利产品及服务质量过硬的企业并不多,行业整体缺乏品牌效应。在需求旺盛的阶段,行业需求巨大,发展前景好,这是毋庸置疑的。傲唯刃道号召业内企业共同努力,尤其需要发挥尽善尽美的研发精神,进一步提高研发技艺,降低成本,真正解决客户的实际困难,严把质量关,提供最可靠的产品及服务。
压电式多点触控/多点触控
聪明的Apple将电压式触控技术进行优化,通过将电容信号转化为电流信号,在电容式触控技术上实现了多点触控,配上iPhone炫丽的UI,大大推动了触控技术在手机等消费电子终端的普及。电容式触控技术也由此被大为看好。而在创意时代会展举办的2009移动手持显示技术大会上,矽创电子股份有限公司(Sitronix)“压电式多点触控技术”引起了全场的高度关注。在矽创压电式多点触控平台上,可以跟踪多个手指的触摸轨迹,还可以根据手指用力的情况,写出粗细不一的文字。另外,该公司带来的触摸式电子混音器、触摸式电子钢琴等应用也让人印象十分深刻。与传统的电阻式触控技术相比较:1.压电式多点触控技术的上、下面版板不必用回路的模式让电流一直导通,在没有触摸动作时,触屏不会耗电,因此,功耗远低于传统的电阻式触控技术。2.在传统的电阻式触控技术下实现多点触控时,如果触摸的两个点过于靠近,电阻传感器没有办法辨别这是一个点还是两个点。而压电式多点触控技术则可以精确的追踪到每一个触摸轨迹。&
原理解析/多点触控
,在2006年的大会上,纽约大学的Jefferson&Y&Han教授向众人演示了他的最新成果,其领导研发的新型触摸屏可由双手同时操作,并且支持多人同时操作。利用该技术,Jefferson&Y&Han在36英寸×27英寸大小的屏幕上,同时利用多只手指(姆指似乎还无法感应到),在屏幕上画出了好几根线条。与普通的触摸屏技术所不同的是,它同时可以有多个触摸热点得到响应,而且响应时间非常短——小于0.1秒。
技术原理/多点触控
多点触控的核心是FTIR(Frustrated&Total&Internal&Reflection),即受抑内全反射技术。如图2所示,由LED(发光二极管)发出的光束从触摸屏截面照向屏幕的表面后,将产生反射。如果屏幕表层是空气,当入射光的角度满足一定条件时,光就会在屏幕表面完全反射。但是如果有个折射率比较高的物质(例如手指)压住丙烯酸材料面板,屏幕表面全反射的条件就会被打破,部分光束透过表面,投射到手指表面。凹凸不平的手指表面导致光束产生散射(漫反射),散射光透过触摸屏后到达光电传感器,光电传感器将光信号转变为电信号,系统由此获得相应的触摸信息。由于多个触点同时响应,新型触摸屏充分释放了人手的控制潜力。不再像鼠标那样,一只手仅能够操作一个点,而多点触控技术是一种具有高度自由性的真正的多点控制界面。&
分类/多点触控
LLP技术主要运用红外 设备把 投影到屏幕上。当屏幕被阻挡时,红外线便会反射,而屏幕下的 则会捕捉反射去向。再经系统分析,便可作出反应。 FTIR技术它会在屏幕的夹层中加入 光线,当用户按下屏幕时,便会使夹层的光线造成不同的反射效果,感应器接收光线变化而捕捉用户的施力点,从而作出反应。 ToughtLight技术运用投影的的方法,把红外线投影到屏幕上。当屏幕被阻挡时,红外线便会反射,而屏幕下的摄影机则会捕捉反射去向。再经系统分析,便可作出反应。 Optical Touch技术它在屏幕顶部的两端,分别设有一个 ,来接收用户的手势改变和触点的位置。经计算后转为 ,再作出反应。 各种多点触摸技术的优劣势 FTIR(受仰全内反射):优势: 适应各种按压力度 不需要封闭的箱子 触摸点对比度高 如果有硅胶触摸层(或类似),即使像笔尖那么小的点也可以识别 劣势: 无法识别薄片状物体 需要 LED 灯带,灯条,这涉及到焊接 需要硅胶层,以达到较好的触摸效果 不能用玻璃作为触摸屏,因为要用到亚克力独有的全内反射特点 背投式 DI(散射光照明):优势: 不需要硅胶层 可以用任何透明的材料做触摸屏,如玻璃,亚克力等 不需要 LED 等条,等带 不用自己焊 LED 设置简单 可以识别物体,手指,薄片状物体,甚至隔空操作 劣势: 要使整个触摸屏有一致的亮度比较难 触摸点的对比度低 容易产生“假”的触摸点 需要封闭的箱子 前投式 DI(散射光照明):优势: 不需要硅胶层 可以使用任何透明材质如玻璃,亚克力做触摸屏 不需要 LED 灯条,灯带 不需要焊接 LED 设置简单 可以识别手指,隔空操作
特点/多点触控
1、 多点触控是在同一显示界面上的多点或多用户的交互操作模式,摒弃了键盘、鼠标的单点操作方式。 2、用户可通过双手进行单点触摸,也可以以单击、双击、平移、按压、滚动以及旋转等不同手势触摸屏幕,实现随心所欲地操控,从而更好更全面地了解对象的相关特征(文字、录像、图片、卫片、三维模拟等信息)。 3、可根据客户需求,订制相应的触控板,触摸软件以及 ;可以与专业图形软件配合使用。支持使用:
电脑 系统 软件 应用领域: 互动信息展示:政府部门、企业成果展示、商业宣传、 媒体、公共信息服务等 指挥控制应用:地理信息、公安系统、国土资源、 部门、电力行业、水利部门、军事单位等 展会领域应用:各类产品展会 、民用、工业产品展示 房地产行业应用:房产销售中心、跨区域营销现场、大型的地产交易展厅等 文教行业应用: 、 、高档娱乐场所、游戏厅
相关资料/多点触控
GIS多点互动桌系统 概述GIS多点互动桌系统,是目前国内首个将大面积多点触控( )技术与 (GIS)结合使用的产品。 触控技术该技术实际上是由“投影大屏幕融合技术”和“ ”技术的结合,该技术尚属国内首创。 是将一组(多台)投影机投射出的画面进行边缘重叠,并通过融合技术显示出一个没有缝隙、更加明亮、超大、高 的整幅画面,画面的效果就好像是一台 投射的画质。当两台或多台投影机组合投射一幅两面时,会有一部分影像灯光重叠,边缘融合的最主要功能就是把两台投影机重叠部分的灯光 逐渐调低,使整幅画面的亮度一致。边缘融合投影技术经历了三个发展阶段:硬边拼接、重叠拼接和 拼接。 “Mulit-Tuch”实际基于红外捕捉技术,利用特殊红外灯在桌体内部形成均匀红光照射,再利用多个高效红外捕捉摄像机,搭建其一个抗干扰的红外捕捉系统,当用户通过手或激光笔触控桌面时,红外捕捉系统能迅速捕捉,交由定制的红外捕捉处理程序处理。从而完成不同手势的响应。 桌系统规划整体布局:3通道组成一个高1.0米,宽1.2m、长4米, 长方桌体。 投影亮度指标:考虑到现场可能存在的其他光源影响,我们选择高亮度的专业投影机,单台亮度不低于6500流明,对比度不低于2000:1。 投影距离(配合一重 )1.0m。 指标:整机工作时,观众位置的投影机噪音不超过30分贝。 指标:高性能图形工作站,可运行海量数据的 系统软件,运行100万面的场景,画面 不低于30FPS。 :&0.2秒响应速率。 并发触控量:支持最高10人100个点的触控响应。 系统对接:自主研发GIS平台下于后勤保障GIS实现无缝对接,并根据客户需要为系统预留接口,以便客户后期升级工程的需要。 系统拓扑图及设备要使用多点触控技术,装置必需配备触屏或触控版,同时需装载可辨认多于一点同时触碰的软件,相较之下,标准的触控技术只能辨认一点,是其之间最大的分别。 能让电脑感受到 上的触碰的事物包括:热力、指压、 、红外线、光学感应、电阻改变、 接收器, 、雷射波幅感应器及影子感应器等。 现时已有若干多点触控的应用及计划。有些目的是令输入更个性化不过这种技术最主的目的是带来人机互动新时代。 当下流行的 ,都被认为不够人性化。因为,这些手机的用户界面40%被键盘占据,且控制按钮固定不变。如果把这些键盘取消,就可以得到一个巨大的屏幕。 多点触控的出现是鼠标出现后用户控制界面的又一次全新升级,这种全新的用户界面通过创新的软件支持和超大的多点触控屏幕,能够通过手指轻松控制一切:通过Cover Flow滑动选择专辑,手指点击 和 ,任意缩放网页局部。
长久以来,人们一直只习惯用鼠标来操控电脑画面,这导致多点触控技术无法在科技产品中获得完整的运用。在理论上,利用手指直接在屏幕上进行操作远比使用鼠标要来得更为精确。虽然这会让使用者耗费更多的动作及体力,却能够在操控过程中获得更多的乐趣。另外,目前有许许多多的 影像或者是影像处理 ,在操控的过程中设计过于复杂,必须要搭配鼠标及键盘一并使用,甚至许多操作方式也依赖直觉及经验,才能获得最佳的操控方式。因此,多点触控技术,有望取代目前所使用的键盘、鼠标,将进一步体现出人性化操控接口的未来趋势。 多点触控产品是利用红外光线打入透明玻璃平板上,并利用光线碰到指头产生的反射来抓取正确位置,可整合至投影机或液晶面板内,并结合手势、手绘轨迹等辨识技术,做为中、大尺寸互动教学、鼠标操作、Games操控以及简报功能。可以让多用户共同享受交互体验,是一款时尚的室内、外展示、娱乐工具。 与单点触控技术对比 与上代触技术( )相比,多点触控技术突破了假地址的难题。 在出现多个触点时会产生四个坐标,里:(x1.y1)(x1.y2)(x2.y1)(x2.y2)而这里面只有下标都为1的坐标是真实的,多点触控就是突破了这个问题而衍生出来的。
应用前景/多点触控
多点触控的应用并不限于手机,在电脑上也有很多应用。就在苹果推出
的 2007 年,微软也曾推出一款采用了多点触控技术的概念产品 Surface,同样在业界引起了广泛关 注。 如今多点触控技术已从概念走向实用, 华硕的 EeeP C 9 00 以及 DellInspiron Mini/Latitude XT 和 Sharp 的 Mobius 都开始采用多点触摸技术。 实际上,多点触控技术的应用并不限于上述方面,可以说,在 、 等厂商的带动下, 多点触摸技术正在迅速风靡,已经进入了一些全新应用领域。比如,有研究人员在研究将汽车挡 风玻璃当做信息显示平台,借此,任何方向盘的具体作用都可以省略,而改用姿势控制,这样, 开车就会变得和聊天一样,通过机器可以识别的手势,驾车者将不会因为分心或者心情不好导致 交通问题,还能够避免违章带来的众多问题。另外,还有人研究在运动员的训练中应用触控技术, 通过设定标准动作实现对训练的监控,这要比现在通过摄像的方式方便得多。相信未来,随着研 究的深入还会有更多的应用走入现实。
平板电脑/多点触控
爱国者P728爱国者P728是一款以娱乐为核心的纯平平板电脑,多点触控技术在操作方式和体验感上都要好于传统的单点触屏,而且人机互动感更强。它以中低端消费人群为主要客户群体。外观时尚,娱乐功能丰富,高性价比是其特色。原道N9原道N9平板电脑,采用一块7英寸的电容屏,可以同时实现5点触控的效果。在同一显示界面上的多点或多用户的交互操作模式下,可以摒弃 、 的单点操作方式,取而代之的是响应非常快、准确率很高的电容5点触控,因此拥有更好更全面的网页、文字、图片、游戏、地图效果。艾诺 NOVO8艾诺 NOVO8 平板采用ARM Cortex-A9 单核 800MHz处理器、Mali-400显卡芯片、512MB DDR2内存、8GB硬盘,支持Micro SD(TF)卡扩展,最大支持16GB存储容量以及分辨率为的8英寸电容式多点触摸屏(支持最多五点触控)。机身尺寸为214×129×15.4mm,机身颜色可选为黑色、白色,官方标称续航时间:WiFi上网:约3小时、视频播放:约3小时,具体时间视使用环境而定。爱立顺M12M12外壳采用高档锌合金材料,表面通过ML特殊技术处理,独特的锖色外观配以9.7寸IPS硬屏,兼具时尚感和金属质感。M12身材相当惊人,厚度仅11.5mm,不说挑战8.8mm的iPad 2,至少比13.4mm的iPad1或者是市面上大多数15mm左右 的平板电脑薄很多。Newsmy T7T7采用纯平TP外壳,7英寸轻薄机身易携带,外观时尚简约;采用领先的全电容触控屏技术,支持5点触摸操控,灵敏的响应速度,更加流畅的操控体验。分辨率为800·480,画面显示效果清晰细腻;前置30万像素的摄像头和MIC,网络视频、通话畅快淋漓;机身顶部分布着菜单键、音量键、返回键,方便用户操控;其右侧边内置USB接口、耳机插孔、充电接口、HDMI等接口。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:23次
参与编辑人数:14位
最近更新时间: 16:23:58
申请可获得以下专属权利:
贡献光荣榜单点触控和多点触控_手机中国
盘点3D Touch上那些鲜为人知技术积淀
作者:马俊杰
单点触控和多点触控  在第一代iPhone诞生之前,多点触控技术其实早已存在,但是在当时没有运用到消费类电子产品中,是乔帮主和拥有这项生产技术的LCD厂商沟通成功,获得产能空档,从而能够让其搭载在小尺寸的、玻璃材质的iPhone屏幕上。从那个时候开始,电容触控屏幕和多点触控技术被广泛引入到领域,有一个小小误区,很多伙伴认为电阻屏是单点触控的,电容屏是多点触控的,有的电阻屏也能够实现多点触控,有的电容屏只能够实现单点触控。自电容和互电容特性对比  电容屏根据使用的电容类别不同可以分为自电容屏和互电容屏,只有互电容屏才能实现多点触控。如上图所示,自电容优势在于感应距离能够长达20mm,手指可以近距离悬空操作屏幕,缺点就是无法实现多点触控。相反,互电容虽然无法实现悬浮触控那种科幻用户体验,但是却能够实现多点触控。这两种电容其实是能够同时运用在上面的触控屏的,从而兼顾悬浮触控和多点触控技术,下文将会举例。现在先来分享一下两种电容屏幕的技术原理。自电容和互电容结构对比  如上图所示,自电容屏幕的单个电容器体积相对更大,进行触控感应时候,手指一般是一整行和一整列地选中整个电容器,反观互电容屏幕,更像上述提及的电阻屏,手指选中电容屏时候仅仅选中某条X轴和某条Y轴的交汇点(单个电容器),而不会一整列或者一整行地选择,换句话说,还是上面这张图,相同面积下 ,左边的自电容屏能够容纳8个电容器(4个纵向,4个横向排列),右边的互电容屏则需要容纳16个电容器,是自电容屏2倍,也就是每一个X轴和Y轴交叉的位置代表一个电容器。  只要是电子元件,无论是以前小编的文章中提及过的屏幕像素还是摄像头感光粒子,都会存在互相干扰的问题,彼此之间的空隙不够大,这种干扰现象越发明显。类比到触控屏上,互电容屏由于电容器彼此之间距离不够大,导致电容器体积不能够做到像自电容那么大,最终电容器的电场会减弱,信号强度不高,探测指尖位置的能力也下降,这也是为什么当手指在互电容屏上悬浮时候,电容器无法感应到微弱的之间触控信号。  相比之下,单个电容器体积更大的自电容屏,具有更强的电场和信号强度,除了在手指定位时候会以一整行和一整列方式选中电容器,还能够实现悬浮触控功能,信号够强,指尖能够在不触摸屏幕的情况下依然被电容器识别到。从而引出下文我们提及到的“鬼影问题”。  互电容能够通过X和Y轴的交汇处唯一地确认手指的位置,当两根手指同时触控在屏幕上,两个点是唯一的,并不会出现歧义,自电容屏则不同。我们举个例子,如下图所示,两根手指同时触控在屏幕时候,手指A选定了和Y0两列,手指B选定了和Y2两列,单独看,好像和互电容屏并没有什么区别。我们尝试一下将两张图重叠在一起。什么是“鬼影节点”  重叠之后,如上图所示,我们发现四条线段除了选中了两个正确的节点(红色圆圈区域)以外,还选中了两个“鬼影节点”(蓝色矩形区域),最终系统就会判断错误,用户究竟选中了哪两个点?明明只有两根手指,为什么存在着四个电流变化的节点,这就是自电容无法实现多点触控的原因。同理可得,自电容能够实现的悬浮触控也只能够存在在单点触控的范畴,多点触控是无法同时实现悬浮触控的。
提示:支持键盘“←&→”翻页
无需登录,一键评论
用其他账号登录:
请稍后,数据加载中...
请稍后,数据加载中...
上市时间:2016.09
上市时间:2017.04
上市时间:2017.05
上市时间:2017.06
上市时间:2017.05
上市时间:2017.05
上市时间:2017.05
上市时间:2017.06
上市时间:2017.05
上市时间:2017.06
上市时间:2017.05
上市时间:2017.05
上市时间:2017.06
上市时间:2017.06
上市时间:2017.05
上市时间:2017.06
上市时间:2017.05
上市时间:2017.05
上市时间:2017.05
上市时间:2017.06
热门搜索词
Copyright & 2007 -
北京沃德斯玛特网络科技有限责任公司.All rights reserved 发邮件给我们京ICP证-070681号 京ICP备号 京公网安备:京网文[8号HTML5触摸事件(多点、单点触控) - Sharks
HTML5触摸事件(多点、单点触控)
&提示:转载请注明原文链接
&本文永久链接:
HTML5的触摸API支持处理单点和多点的触摸事件处理。接口1、TouchEvent:代表了一个触摸事件。主要属性:TouchEvent.changedTouches:一个TouchList对象。代表了所有上一个接触点到当前点状态发生变化的点。TouchEvent.touches:一个TouchList对象。代表的所有当前触摸点,不管目标或者状态是否改变。TouchEvent.type:触摸事件类型。有touchstart、touchend、touchmove、touchenter、touchleave和touchleave。2、Touch:代表一个单独的触摸点。主要属性:Touch.identifier:这个触摸对象的唯一标识。3、TouchList:代表一组触摸点。比如同时有多根手指放在在屏幕上面。4、DocumentTouch:包含创建Touch和TouchList对象的方法。 触摸事件touchstart:触摸的时候发生。touchend:手指从屏幕抬起时发生。手指划出了屏幕也会触发这个事件。touchmove:手指沿着屏幕滑动时触发。touchenter:触摸点进入到一个元素。touchleave:触摸点离开一个元素。touchcancel:当触摸受到干扰而中断时触发。比如一个弹框,或者触摸点离开了文档窗口区域到了其他地方,或者触摸点超出了最大可支持的上限,那么最先的触摸将会退出。 下面一个跟踪多点触控的例子,允许用户同时多于一个手指画线,可以直接运行:&!DOCTYPE html&
&head&&title&Touch Test&/title&&/head&
&canvas id="canvas" width="600" height="600" style="border:solid black 1"&
Your browser does not support canvas element.
Log: &pre id="log" style="border: 1px solid #"&&/pre&
&script type="text/javascript"&
document.body.onload = //文档加载完毕触发
var ongoingTouches = new Array(); //用来保存跟踪正在发送的触摸事件
//设置事件处理程序
function startup() {
var el = document.getElementsByTagName("canvas")[0];
el.addEventListener("touchstart", handleStart, false);
el.addEventListener("touchend", handleEnd, false);
el.addEventListener("touchcancel", handleCancel, false);
el.addEventListener("touchleave", handleEnd, false);
el.addEventListener("touchmove", handleMove, false);
log("initialized.");
//处理触摸开始事件
function handleStart(evt) {
evt.preventDefault(); //阻止事件的默认行为
log("touchstart.");
var el = document.getElementsByTagName("canvas")[0];
var ctx = el.getContext("2d");
var touches = evt.changedT
for (var i=0; i & touches. i++) {
log("touchstart:"+i+"...");
ongoingTouches.push(copyTouch(touches[i]));
var color = colorForTouch(touches[i]);
ctx.beginPath();
ctx.arc(touches[i].pageX, touches[i].pageY, 4, 0,2*Math.PI, false);
// a circle at the start
ctx.fillStyle =
ctx.fill();
log("touchstart:"+i+".");
//处理触摸移动事件
function handleMove(evt) {
evt.preventDefault();
var el = document.getElementsByTagName("canvas")[0];
var ctx = el.getContext("2d");
var touches = evt.changedT
for (var i=0; i & touches. i++) {
var color = colorForTouch(touches[i]);
var idx = ongoingTouchIndexById(touches[i].identifier);
if(idx &= 0) {
log("continuing touch "+idx);
ctx.beginPath();
log("ctx.moveTo("+ongoingTouches[idx].pageX+", "+ongoingTouches[idx].pageY+");");
ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
log("ctx.lineTo("+touches[i].pageX+", "+touches[i].pageY+");");
ctx.lineTo(touches[i].pageX, touches[i].pageY);
ctx.lineWidth = 4;
ctx.strokeStyle =
ctx.stroke();
ongoingTouches.splice(idx, 1, copyTouch(touches[i]));
// swap in the new touch record
log("can't figure out which touch to continue");
//处理触摸结束事件
function handleEnd(evt) {
evt.preventDefault();
log("touchend/touchleave.");
var el = document.getElementsByTagName("canvas")[0];
var ctx = el.getContext("2d");
var touches = evt.changedT
for (var i=0; i & touches. i++) {
var color = colorForTouch(touches[i]);
var idx = ongoingTouchIndexById(touches[i].identifier);
if(idx &= 0) {
ctx.lineWidth = 4;
ctx.fillStyle =
ctx.beginPath();
ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
ctx.lineTo(touches[i].pageX, touches[i].pageY);
ctx.fillRect(touches[i].pageX-4, touches[i].pageY-4, 8, 8);
// and a square at the end
ongoingTouches.splice(idx, 1);
// we're done
log("can't figure out which touch to end");
//处理触摸对出事件
function handleCancel(evt) {
evt.preventDefault();
log("touchcancel.");
var touches = evt.changedT
for (var i=0; i & touches. i++) {
ongoingTouches.splice(i, 1);
// we're done
//选择颜色
function colorForTouch(touch) {
var r = touch.identifier % 16;
var g = Math.floor(touch.identifier / 3) % 16;
var b = Math.floor(touch.identifier / 7) % 16;
r = r.toString(16); // make it a hex digit
g = g.toString(16); // make it a hex digit
b = b.toString(16); // make it a hex digit
var color = "#" + r + g +
log("color for touch with identifier " + touch.identifier + " = " + color);
//拷贝一个触摸对象
function copyTouch(touch) {
return { identifier: touch.identifier, pageX: touch.pageX, pageY: touch.pageY };
//找出正在进行的触摸
function ongoingTouchIndexById(idToFind) {
for (var i=0; i & ongoingTouches. i++) {
var id = ongoingTouches[i].
if (id == idToFind) {
return -1;
// not found
//记录日志
function log(msg) {
var p = document.getElementById('log');
p.innerHTML = msg + "\n" + p.innerHTML;
&/html&文章参考地址及示例来源:6017人阅读
Linux驱动(27)
上发单点触摸事件
input_report_key(input,ABS_MT_TRACKING_ID,0);
input_report_key(input, BTN_TOUCH, 1);
input_report_abs(input, ABS_MT_POSITION_X, ts-&tc.x1);
input_report_abs(input, ABS_MT_POSITION_Y, ts-&tc.y1);
input_sync(input);
上发多点触摸事件
input_report_key(input,ABS_MT_TRACKING_ID,0); // ABS_MT_TRACKING_ID 用来区分是第几指上报上来的坐标
input_report_key(input, BTN_TOUCH, 1);
input_report_abs(input, ABS_MT_POSITION_X, ts-&tc.x1);
input_report_abs(input, ABS_MT_POSITION_Y, ts-&tc.y1);
input_mt_sync(input);
input_report_key(input,ABS_MT_TRACKING_ID,1);
input_report_key(input, BTN_TOUCH, 1);
input_report_abs(input, ABS_MT_POSITION_X, ts-&tc.x2);
input_report_abs(input, ABS_MT_POSITION_Y, ts-&tc.y2);
input_mt_sync(input);
input_sync(input);
在 2.36.28/29 的 input 模块 中增加多点触摸的接口
增加多点触摸的命令定义:
linuxsrc/include/input.h
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */
#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
* MT_TOOL types
#define MT_TOOL_FINGER 0
#define MT_TOOL_PEN 1
在同一文件中增加相应的处理函数:
static inline void input_mt_sync(struct input_dev *dev)
input_event(dev, EV_SYN, SYN_MT_REPORT, 0);
在linuxsrc/driver/input/input.c 中增加定义
* EV_ABS events which should not be cached are listed here.
static unsigned int input_abs_bypass_init_data[] __initdata = {
ABS_MT_TOUCH_MAJOR,
ABS_MT_TOUCH_MINOR,
ABS_MT_WIDTH_MAJOR,
ABS_MT_WIDTH_MINOR,
ABS_MT_ORIENTATION,
ABS_MT_POSITION_X,
ABS_MT_POSITION_Y,
ABS_MT_TOOL_TYPE,
ABS_MT_BLOB_ID,
ABS_MT_TRACKING_ID,
ABS_MT_PRESSURE,
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:98298次
积分:1252
积分:1252
排名:千里之外
原创:21篇
转载:44篇
评论:13条
(1)(1)(7)(9)(20)(8)(10)(2)(3)(4)

我要回帖

更多关于 多点触控 的文章

 

随机推荐