上一篇中, 我們聊到了多指標(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
在 GestureInfo 裡面作了幾個最基本的手勢. 這是不需要額外開發, Win7直接支持的
不過目前微軟僅定義了兩點的手勢而已(雙指放大縮小/雙直平移/雙指旋轉/雙指雙擊等)
但是隨著多點的發展, 絕對不只是有兩點, 甚至可以有三點四點五點, 那這些手勢呢?
全都仰賴應用軟件自行開發嗎? 或是硬件廠商都會轉換為手勢嗎? 請大家想想,
越來越多的點, 操作起來會更順暢嗎? 手勢發展是不是一個必然的趨勢呢?
今天我們稍微談了一下演算多點跟真實多點的差異, 就在於鬼點(也就是無法得知真實座標)
也導致, 如果要解決鬼點的問題, 透過手勢的包裝, 是一個不錯的方式
(當然, 某些應用軟件可以依據應用需求不同來包裝, 例如很有名的等化器觸控輸入裝置)
那當然 , 手勢這麼重要, 我們下一章節, 自然來談談手勢囉.
(補充說明: 由於下一章節, 有些內容會涉及翔基商業機密, 故若是不能說明很清楚, 還請見諒)
近期迴響