質問: 考え方についての質問です。 現在加速度センサーを使用したモーション判定のアプリ(円を描く、四角を描くなど)を作成しようと考えているのですが、x,y,z軸の値は取れるのですが、円を描いた時に円を描いたと判定するにはこの値をどのように計算すればモーションの判定が出来るのでしょうか?
回答: 計算方法だけ提示されても間違いなく実用にはならないので、まずは物理(空間と運動の関係)と数学を勉強する必要があります。 加速度を積分すると速度が計算できます。それをさらに積分すると移動距離が出ます。加速度を微分すると動き始め、終わりが判定できます。1軸で直線運動ならまだ簡単です。 Androidの加速度センサの軸は端末の向きなので、同じ方向に動かしても端末の向きによってどの軸に値が出てくるかは変わります。斜めになっていれば複数の軸に値が出てきます。 さらに、動かしてる途中で端末の向きが変わることも考慮したほうがよいかもしれません。座標系を変換して世界座標(東西南北高さの座標)にしてから考える場合もあります。行列計算の知識が必要です。 円運動などということになると、「空間中で物体が円運動する」というのはどういうことかを数学的に理解しておかなければなりません。x^2+y^2=aとか、これを時間(t)を媒介変数にして表した方程式とか、ああいうやつです。これを3次元で考えるのです。で、取得した加速度センサーの値とこの運動がどう結びつくのかを理解して、やっと「運動を判定」にたどり着くことが出来ます。 AndroidのAPIにこのあたりの計算を支援してくれるものもあるようですが、これらを理解してないとリファレンスに書いてあることが理解できません。 ということで頑張ってください。