4

Android ドキュメントでは、3 番目のパラメータが次のように指定されています 。

float[] gravity 

次に指定します

[0 0 g] = R * gravity (g = magnitude of gravity)

さて、オンラインのほとんどの例では、誰もが加速度計の値を getRotationMatrix に送信しているのを見ることができますが、重力の値だけを送信する必要があると思いませんか?

たとえば、携帯電話に重力センサーがある場合、生の出力を getRotationMatrix に送信する必要がありますか? ない場合、加速度計の値を送信する必要がありますか? 最初に非重力コンポーネントを抽出する必要がありますか? (加速度計の値は、加速度から G を引いたものです)。

重力センサーの値を使用すると、そのセンサーを搭載した携帯電話で加速度計の値を使用するよりも信頼性が高くなりますか?

前もって感謝します!ギレルモ。

4

1 に答える 1

1

加速度計の値を使用した例しか表示されない理由は、重力センサーが API 9 でのみ起動されたためであり、ほとんどの電話が加速度計の値とは別にこの値を提供しないか、センサーを持っていないなどの理由によると思います.

もう 1 つの理由は、ほとんどの場合、結果が同じになる傾向があるためです。加速度計センサーが出力するのはデバイスの線形加速度と重力ですが、ほとんどの場合、電話は静止しているか、一定の速度で動いています。 、したがって、デバイスの加速度はゼロになります。

setRotationMatrixAndroid ドキュメントから:

この関数によって返される行列は、デバイスが自由落下しておらず、磁北に近くない場合にのみ意味があります。デバイスが加速している場合、または強い磁場に置かれている場合、返される行列は不正確になる可能性があります。

さて、あなたは重力データがより信頼できるかどうか尋ねていますか? まあ、テストのようなものは何もありませんが、それは大きな違いはないと思います.それは本当にあなたが望むアプリケーションに依存します. また、単純な重力値を取得するのは簡単ではなく、フィルタリングが必要なため、ノイズの多い結果になる可能性があります。

于 2012-02-02T15:18:15.063 に答える