私はデバイスの傾きを取得したいので、私はこれを使用してデバイスの表面上にデバイスを置いて、いくつかの表面の傾きを測定することができます。xamarin形式でデバイスの傾きを取得するにはどうすればよいですか?
今私はここにhttps://github.com/rdelrosario/xamarin-plugins
、下のコードからxamarinフォームのデバイスモーションプラグインを使用しています:
CrossDeviceMotion.Current.Start(MotionSensorType.Accelerometer)。
CrossDeviceMotion.Current.SensorValueChanged += (s, a) =>
{
switch (a.SensorType)
{
case MotionSensorType.Accelerometer:
{
Debug.WriteLine("A: {0},{1},{2}", ((MotionVector)a.Value).X, ((MotionVector)a.Value).Y,
((MotionVector)a.Value).Z);
Exposicao.Inclinacao = ((MotionVector)a.Value).Z;
break;
}
case MotionSensorType.Compass:
{
// Debug.WriteLine("H: {0}", a.Value);
Exposicao.Bussola = (double)a.Value.Value;
break;
}
}
};
コンパスの部分は大丈夫ですが、加速度計の部分は機能していますが、いくつかがあります。
もし私が間違っていなければ、私はZ軸の傾きを得ます。だからz.Value.Value。
この値はandroidとiosで異なり、androidでのフォーカスが可能です。
zの値は、デバイスが平坦な面に置かれている場合は10、デバイスが起立している場合は0になり、1つの象限のみにフォーカスが移ります。
私は説明したことを達成するために何か間違っていますか?
これらの値を0と90の間の角度に変換するにはどうすればよいですか?それは線形ではないように見えるので、5は45度に見えません。
おかげ
hankideさん、ありがとうございました。非常に正確ですが、精度は必須ではありません。なぜなら、私はプラグインを使い始めたからです。しかし、改善する時間があれば、試してみましょう。プラグイン番号(度) – gilberto
@gilberto Ok、意味があります。うまくいけば誰かがもっと簡単な解決法を持っているといいでしょう – hankide
@gilberto最後に問題を解決できましたか? – hankide