トップページ > 記事閲覧
Android版:本体角度の取得
名前:ひよこ 日時: 2017/05/10 00:48

ここの過去の質問から、Androidの傾きを検出できる関数GetAccelerometerVector()というものを知り、使わせてもらったのですが、床に水平に置いてコマのように回しても反応しません。 この関数で受け取っている値を見ると、どうやら重力の掛かっている方向(地面の方向)を取得しており、スマホ自体の角度ではないようなのですが、これは仕様ですか。 傾きの取得とあったのでロール・ピッチ・ヨーのようなスマホ自体の角度を得られると思っていたので質問しました。 もし仕様でしたら、出来ればこういった回転の角度が取得できる関数が欲しいです。 お忙しい中申し訳ないですが、よろしくお願いします。
メンテ

Page: 1 |

Re: Android版:本体角度の取得 ( No.1 )
名前:管理人 日時:2017/05/11 00:20

お察しの通り GetAccelerometerVector は重力に対しての傾きを得るためのもので、方角を得るためのものではありません 方角を得るための機能も Android の API で簡単に取得できそうなので方角を得る関数を実装してみようと思います 数日ほどお時間をください
メンテ
Re: Android版:本体角度の取得 ( No.2 )
名前:ひよこ 日時:2017/05/13 12:57

ありがとうございます。 急ぎではありませんので、よろしくお願いします。
メンテ
Re: Android版:本体角度の取得 ( No.3 )
名前:管理人 日時:2017/05/14 12:36

Android端末の角度を取得するための関数を追加しましたので、よろしければこちらをダウンロードしてください https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 以下の関数を追加しました // センサーから得られる方角を取得する // // 縦持ち( 地面に対して端末を垂直に持った状態 )の場合に正しく値が取得できます // // 戻り値の x:方角( 単位:ラジアン 0.0f:北 π/2.0f:東 -π/2.0f:西 -π or π:南 ) // // 戻り値の y:前後の傾斜( //         単位:ラジアン //         0.0f:端末が縦持ちで垂直の状態 //         π/2.0f:前方方向に90度倒した状態( 画面が空を向いている状態 ) //         -π/2.0f:後方方向に90度倒した状態( 画面が地面を向いている状態 ) //         -π or π:端末が上下さかさまで垂直の状態 ) // // 戻り値の z:左右の傾斜( //         単位:ラジアン //         0.0f:端末が縦持ちで垂直の状態 //         π/2.0f:右方向に90度倒した状態 //         -π/2.0f:左方向に90度倒した状態 //         -π or π:端末が上下さかさまで垂直の状態 ) VECTOR GetOrientationVector( void ) ; 注釈にもありますが、Android端末を縦持ちして、地面に対して垂直な状態にした場合に正しい方角が取得できます 端末を前後に倒しても一応取得できますが、精度が落ちるようです( ただ、それは私が手元で試した限りなので、 機種によって異なるかもしれません )
メンテ
Re: Android版:本体角度の取得 ( No.4 )
名前:ひよこ(解決) 日時:2017/05/20 18:39

管理人様、新しい関数を用意していただき、ありがとうございます。 動作確認のため返信が遅れてしまい、申し訳ありません。 手元のAndroid端末でも色々と試してみましたが、やはり傾いていると方角が正しく取得できないようです。 ですがプログラム側でカバーできそうなので、解決とさせていただきます。 ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存