2017-03-09 8 views
0

Delphi Rad 10.1 Berlinを使用してアンドロイドデバイスから現在の見出しを取得しようとしています。現在の見出しのDelphiマルチデバイスを取得する

OrientationSensorにはTrue Headingという機能がありますが、これはWindowsでのみ有効です(Embarcaderoナレッジベース参照)。

私はそれをすると思います。次の変数を1つの見出しに変換する必要があります。

OrientationSensor1.Sensor.HeadingX 
OrientationSensor1.Sensor.HeadingY 
OrientationSensor1.Sensor.HeadingZ 

私は唯一の見出し必要があります(と高度を気にしない)として、私は0から360からでなければなりません、現在の見出しを取得する必要がリターンでZ.

を無視することができると信じて。

私はあるオンラインで見つける式を使用: - 助けるように見えたが、いくつかの位置で乱暴に不正確だった、と他の人に否定的だった

angle = atan2(Y, X); 

を。

何か助けや助言をいただければ幸いです。助けるかもしれ

いくつかの詳細は以下のとおりです。

それは、Delphiでのマルチデバイスアプリケーションです。

Android搭載端末にのみ搭載されています(また、Android搭載端末でのみテストされています)。

ありがとうございます。

+0

FWIW、atan2は一部の入力に対して負であると予想されます。それで何が間違っていますか?あなたがそれが不合理だと思うなら、あなたは前に進んで、あなたが進む前に基本的な三角をより良く理解する必要があります。無知の状態で問題を解決しようとしないでください。潜在的な解決策を理解する。思った文化を持たないこのコピーの貼り付けはあなたに何の役にも立たないでしょう。 –

+0

こんにちはデイヴィッド、私は度合いが必要なので、私はそれが必要なものに肯定的でなければなりません、私はあなたが意味することを感謝し、私は私の手を入れて、私はトリグにひどいので、助けを求めるためにインターネットに向っている、それはそれに頼る前に痛みの3または4日間ではなかったということを意味しません。 –

+0

-30は330と同じですが、-390と同じです。見出しは定期的です。これが何を意味するか考えてみてください –

答えて

0

HeadingZを廃棄しないでください。

これらのツリーの見出しは、世界の表面に関連するのではなく、デバイスの向きと傾きに関連しています。

真の見出しを得るためには、3軸すべての見出しと3軸すべての傾き情報を考慮する必要があります。

あなたがここに見出しの計算についての詳細を読むことができます:https://stackoverflow.com/a/1055051/3636228

はい、答えをリンクObjective Cのためのものですが、背後にある数学は、すべてのプログラミング言語でも同じです。

+0

このシルバーをありがとう、これと正しいとマーク。 –

関連する問題