文档详情

陀螺儀和方向感應器要点.pdf

发布:2017-06-11约1.97万字共15页下载文档
文本预览下载声明
陀螺儀和方向感應器 、 和 最酷的一項功能是它們的內建方向感應器,這個微小 iPhone iPad iPod Touch 的裝置可以讓 iOS 知道裝置被持握的方式以及是否在移動。iOS 可使用方向感應 器來處理自動旋轉,而許多遊戲也都使用它做為控制機制。此外它也可以用來偵 測搖晃與突然的移動。 17-1 方向感應器的物理原理 方向感應器(accelerometer )是藉由感應某個方向的慣性力大小來衡量其加速度 與重力。iOS 裝置內的方向感應器是一個三軸的方向感應器,表示它可以偵測三 度空間中的移動或重力。因此讀者可以利用方向感應器得知裝置目前被握持的方 式(像是自動旋轉功能),也可以得知它是否是平放在桌上,甚至可以知道是正 面朝上還是正面朝下。 方向感應器的度量單位為 力( 表示重力),所以當方向感應器傳回 的值時 g g 1.0 表示它在某個特定方向感應到了 1g 的力。底下有三個例子: 如果裝置拿在手上沒有移動,由於地心引力的關係,大約會有 的作用力 1g 在它上面。 如果裝置是以直向且完全垂直的方式持握時,它會偵測並報告有 的作用 1g 力在y 軸上。 如果裝置是以某個角度持握時,則 的力便會根據持握的方式而分散到不 1g 同的軸。當以 度角持握時,這 的力會大約均分到兩個軸上。 45 1g 突然的移動則可以藉由檢查方向感應器的值是否比 大很多來偵測。在正常的使 1g 用情況下,方向感應器在任何軸上所偵測到的都不會超過 1g 太多。但如果讀者搖 晃、掉落或丟擲裝置,則方向感應器會在一個以上的軸上偵測到非常大的受力。 不過請不要掉落或丟擲讀者自己的iOS 裝置來測試這個理論。 圖 17-1 以圖形表示方向感應器所使用的三個軸。請注意方向感應器使用的是較標 準的 軸座標習慣用法,也就是 值增加表示向上的力,這剛好和第十四章中 y y Quartz 2D 的座標系統相反。當讀者使用方向感應器搭配Quartz 2D 做為控制機制 時,需要轉換y 軸座標。但當搭配OpenGL ES 時(比較可能發生在讀者使用方向 感應器來控制動畫時),就不需要轉換。 圖 : 方向感應器的三維座標軸左邊的 前視圖顯示了 和 軸。右 17-1 iPhone iPhone 4 x y 邊的 側視圖則顯示了 軸。 iPhone 4 z 570 陀螺儀和方向感應器 17-2 不要忘記旋轉 我們之前提過iPhone 4 還有個陀螺儀感應器,可讓讀者讀取描述裝置繞著軸旋轉 的值。 如果此感應器和方向感應器之間的差異看起來不清楚的話,請想想平放在桌上的 iPhone 。假如讀者在該手機平放時開始旋轉它,方向感應器的值不會改變。這是 因為移動手機的力量(在這裡只有沿著 z 軸向下拉的重力)並沒有改變。(實際 上的情形則有一點點的不同,因為讀者手碰到手機的動作一定會觸發少量的方向 感應器動作)。不過在相同動作的期間,裝置的旋轉值則會改變,特別是 z 軸的 旋轉值。順時針旋轉裝置會產生負的值,逆時針旋轉則會提供正的值。停止轉動 則z 軸的旋轉值會回到零。 陀螺儀會在裝置發生旋轉時通知讀者該項變更,而不是記錄一個絕
显示全部
相似文档