Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

javascriptで加速度センサを使うための座標変換

deviceMotion デバイスの加速度値を使っていろいろしようとすると、まずは デバイス座標から、世界座標へ変換したい!ってなる。

しかし、

web上でまったく記事が見つけきれないので

自分でやる。

くそーやってやる!!!泣

参考

f:id:hope_is_dream:20140418195643j:plain

[3次元図形変換の行列表現について解析] http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html

Webアプリ入門
33あたり

方位センサー

方位センサーをイベントリスナーに追加するには「deviceorientation」を指定します。 event.alpha で方位を、event.beta でピッチを、event.gamma でロールを取得します。

window.addEventListener("deviceorientation", function(event) { 
 // event.alpha で方位を取得; 
 // event.beta でピッチを取得; 
 // event.gamma でロールを取得; 
}); 

スマホを飛行機に見立てたときに、機首の上げ下げがピッチで、主翼の先端を上下する のがロールです。飛行機が飛んでいる方角が方位(アジマス)です。 スマホの上端(短辺)を機首と考えたときの方位、ピッチ、ロールの値は以下のような 範囲になります。ブラウザの向きとは関係なく取る値は同じです。

event のプロパティ

  • alpha 方位。
    • 上端が西の時に 0、南の時に 90、東の時に 180、北の時に 270。
  • beta ピッチ。
    • 上端が上の時 90、水平のとき 0、上端が下の時-90。
  • gamma ロール。
    • 水平の時 0、左長辺が上の時 90、左長辺が右水平位置のとき 180、 左長辺が下の時 270(-90)。