1

現在、加速度計データに大きく依存する HTML5 Web アプリを作成しています。アイデアは、アプリを可能な限りクロス プラットフォームにすることです (iPhone、iPad、Android、Windows Phone など)。

まず第一に、HTML5 を介してデバイスのアクセラレーションを取得する方法がいくつかあるため、問題が発生しています。

  • DeviceMotionEvent
  • DeviceOrientationEvent
  • navigator.accelerometer

第 2 に、デバイスが異なれば値も異なります。たとえば、あるデバイスが 0 ~ 10 の間の値と別の 0 ~ 100 の間の値を与える場合があります。これをさらに苛立たしくしているのは、同じデバイス上の異なるブラウザーでも一貫性がないことです。

デバイスとブラウザのすべての組み合わせに対して個別のケースをコーディングする必要がないように、何らかの方法でこの情報を取得して使用する方法はありますか? たとえば、加速度計のデータを生の無意味な数値からデバイスの向き (度単位) に変換しますか?

4

1 に答える 1

0

一般的なデバイスごとに常に除数を設定するか、何らかの方法で最大値と最小値を取得できます。最小値が負の場合は、現在の値からそれを減算して正の値にし、最大値で割ります。その後、0 から 1 の間の 10 進数を取得する必要があります。保証はありません。これを乱数でテストしましたが、実際のアクセラレータ入力ではなく、数値を 10 進数に変換したようです。

if (device=="iphone")
{
minval=-10 ; maxval=10
    }
if (device=="somethingelse")
    {
    minval=0 ; maxval=100
        }
if (minval<0)
        {
        rawdataa = rawdata - minval
        }
    rawdataaa = rawdataa / maxval
    alert(rawdataaa);
于 2012-12-22T03:10:19.703 に答える