多点跟手势

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

首先, 我们把多点跟手势分别来探讨, 才能知道多点手势, 如何成为未来发展趋势

谈到多点, 这里要导入一个新观念, 多指标跟多焦距.

什么是多指标呢? 也就是在同一个操作系统上面, 可以有两个以上的指针装置

目前Windows 7 虽然导入多指针装置(注: 鼠标信息多带了一个ID可以辨认),

但尚未有操作系统可以完全支持(注: Windows 7的小画家虽可在多点设备上使用

两支画笔来做画, 但操作系统尚未全然支持多指针装置), 原因就在于多焦距的解决,

若真正要参考多指针的操作系统, 可以测试Linux 版的MPX 桌面系统, 当两只鼠标

同时接上时, 可以看到两个鼠标装置, 可以用两只鼠标来针对窗口做放大缩小,

也可以用两只鼠标在同一个小画家内用两支画笔做画, 更可以在两个小画家内, “分别”

用两支鼠标去做画, 这里, 就牵涉到多焦距的操作系统, 两个不同的输入装置, 如何

去定义在两个不同的窗口内, 同时间作输入呢?

相信很多人都知道游戏机有两人以上对打模式, 举个简单的例子, Nitendo 的Wii,

在主画面中, 就会出现两个以上的手指, 分别代表两个以上的操作器(也就是输入装置)

所指向的位置, 如果各位有玩过, 必然知道, 在很多游戏选单里面, 仅支持1号操作器

做选择, 进入游戏后, 才会分别支持各个操作器的动作. 为何仅有1号操作器能够操作? 想想, 如果同时间两个人分别去选择两个不同的选项, 那该如何判定呢?

这就是多指标的困扰, Wii 还仅仅只是单一窗口, 也仅仅只能跑单一游戏, 所以输入装置对硬的只有一个游戏, 在游戏中, 怎么去处理两个不同的动作, 让游戏自行决定. 但是,

如果像是Windows 这样的多任务, 多人, 多窗口的操作系统, 该如何去对应两个不同的输入装置呢? 简单来说, 如果我们有两个桌面, 两个鼠标, 两个键盘, 两个显视器, 一台

计算机, 一套操作系统, 那我们非常容易做简单的定义, 1 号键盘鼠标只操作1号桌面内的, 而1号桌面仅显示在1号显示器上面, 那自然2 号就完全对硬到2 号了, 但是, 如果我们把桌面变成延伸桌面, 也就是1号键盘鼠标, 跟2号键盘鼠标, 都对硬到1号桌面, 那鼠标有可能同时存在1个显示器上, 也可能分别存在不同显示器上, 那不全乱套了嘛? 这也就是说, 当Windows 迈入真正多人, 多任务, 多窗口的时候, 有一大难题, 到底哪个窗口是所谓的焦点窗口, 这就很难决定了, 所以MPX 系统用了一个手动的方式去锁定

让使用者自行决定哪个窗口对应哪个输入装置, 但是Windows 7 目前来说, 尚未看到

支持这样的应用, 就是说, 两个指针装置, 分别操作两个不同的窗口.

聊了那么多, 多焦点跟多指标, 似乎是没有提到多点, 是因为, 多点的有些操作行为,

跟多指标非常类似, 但却不能够做到多焦点, 所以这里一定要分清楚, 多点输入, 并非

会出现两个鼠标装置(注:虽然Windows7支持, 但需要特殊软件来模拟呈现), 也不会

让两支手指头分别去操作不同窗口内的东西(注: 翔基计划开发Windows7中介软件,

将多点输入装置, 仿真成不同的输入装置ID来达到此目的)

好了, 澄清完了多点, 多指标, 多焦点的差异之后, 下一篇, 将继续探讨, 多点与硬件

较为密切的真实多点与演算多点, 这里, 会成为手势发展的两大主因之一. 敬请期待

上一篇中, 我们聊到了多指标(Multi-pointer)跟多焦点(Multi-focus).

现在回过来, 我们来谈谈多点, 目前来说, 多点并不是多指标跟多焦点.

都是针对现有的窗口焦点, 跟单一的指针装置来操作. 那么, 多点触摸,

要用来做什么呢? 画图, 玩游戏, 那对于我们的一般操作能有什么帮助呢?

这就延生出了手势的应用, 这点我们将会再下一篇探讨手势的时候,

再作说明, 而现在, 我们讨论一下手势的趋势两大因素之一. 真假多点?

要讨论真假多点之前, 我们要实际讨论一些比较硬件方面的技术问题,

首先, 在一般观念当中, 多点触控, 自然应该是有很多个点的坐标,

让我们可以依据这些坐标来针对软件有不同的反应行为, 达到互动.

然而实际上却不然, 目前的硬件因为技术性上的限制, 主要区分为两种,

一种是无论几各点, 都可以读取实际的坐标, 这样的技术包含在使用

影像(Microsoft Surface, GestureTek, etc.),

投射电容(n-Trig,Apple,Cypress, etc), 矩阵电阻等等技术

另一种则无法实际输出正确的位置, 因为硬件的扫描技术不一样, 仅能

读取”可能”的多点坐标, 也就是说必须利用算法排除“鬼点”的问题.

这些技术通常发生在双光学CCD/CMOS, 红外线, 投射电容等等.

所以当点数越多的时候, 算法越复杂, 要能取得真实坐标的难度越高,

但是由于可以取得一些”相对”数值的变化. 所以, 这时候依然可以呈现

手势的需求, 因此, 各家厂商纷纷开发自行的手势算法, 直到Windows 7

定义出两指的几种基本手势, 现在也是各家触控厂商积极符合的目标.

上面应该大家都听的很模糊, 什么是鬼点, 什么是真假多点, 为何要演算.

举各最简单的例子, 红外线触摸屏中, 是利用红外光的遮段来演算坐标,

所以我们假设在X 轴上我们读取到的灯数据是1111011111101111

在Y 轴上我们读取到的灯数据是1101111111011111, (0代表被遮断)

那经过换算的坐标, 到底会有几个呢? 2个? 3个? 4个?, 答案是不知道,

假设我们明明只放了两个手指, 所以X轴上Y轴上各有两个灯被屏蔽,

那为何会出现那么多组合呢? (4,2) (4,A) (B,2) (B,A), 这就是鬼点,

因为同时间的扫描中我们只有X轴跟Y轴数据, 所以无法知道是哪两个点,

也有可能是三个点, 因为当手指成为L 型的排列时, 其中有一个手指被遮蔽的

所以完全无法知道是有这手指还是没有这手指. 这导致硬件厂商根本无法解决

因此, 透过了一些算法, 最简单的就是分时法, 在硬件高速扫描的情况下,

两只手指要同时进入的机率变小, 所以只要有第一只手指进入的坐标, 那便可

很快的知道第二点, 例如, 第一点进入的是(4,2) 那第二点势必是(B,A)

但这仍无法解决第三点进入, 如果是在(B,2) 的位置上, 因为被(4,2)跟(B,A)

给遮盖掉了, 所以无法知道是否有第三点进入. 要得知第三点势必再有一个轴向

的扫描, 才能”看”的到第三点, 那怎么办呢? 除了更改硬件设计, 有什么算法,

可以求出第三点坐标吗? 显然在演算的多点中, 是无法完全解决这样的问题.

但是, 这并不会影响手势操作所需要判断的条件, 因为手势操作中, 很多只需要

相对动作的判断, 而不需要知道实际的坐标位置, 比如说两指的远近, 这完全不

需要坐标, 只要知道四点形成矩型的对角线长, 因为不论是哪个点, 对角线长都

是一样的. 透过这个原理, 我们可以找出许多手势是不需要实际坐标的. Windows 7 不愧是比尔团队的杰作, 在这里便已经考虑到, 多点不能光提供坐标还要能提供手势的信息, 才能让硬件快速发展, 软件发展快速(呵呵)

所以Windows7以前针对输入装置的信息, 除了Mouse/Keyboard/Pen/Digitalizer

现在更增加了TouchInfo 跟GestureInfo 两种信息, 其中GestureInfo 跟Pen

中的手写辨识信息很像, 是一个不完全由硬件驱动所产生的信息, 在Windows 7 的Touch SDK 中就有提到三种模式, 应用软件可以直接读取TouchInfo 进行判断当然应用软件也可以读取TouchInfo 转换为GestureInfo 后再给应用软件处理,

或是直接开发中间软件, 将TouchInfo 的信息转换为GestureInfo. 所以Win7

相关文档
最新文档