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端末でも色々と試してみましたが、やはり傾いていると方角が正しく取得できないようです。
ですがプログラム側でカバーできそうなので、解決とさせていただきます。
ありがとうございました。
|