2017-03-09 48 views
0

我想從德爾福拉德10.1柏林從Android設備檢索我目前的標題。獲取當前標題德爾福多設備

根據Embarcadero知識庫,OrientationSensor中有一個功能是真正的標題,但只有在Windows上才能啓用。

所以,我認爲要做到這一點,我需要將下列變量轉換爲一個標題。

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

正如我只需要標題(和不關心高度),我相信我可以不顧Z.

在回報我需要檢索當前標題應該是從0-360。

我使用的公式我在網上找到這就是: -

angle = atan2(Y, X); 

這似乎有所幫助,但在某些位置非常不準確,並且是別人負。

任何幫助或建議,將不勝感激。

一些細節,可以幫助有:

這是在Delphi中多設備應用。

它只在Android設備上(也只在其上進行測試)。

在此先感謝。

+0

FWIW,atan2預計對某些投入爲負值。那有什麼問題?如果您認爲這是不合理的,那麼在繼續之前,您需要退後一步並更好地掌握基本觸發。不要試圖在無知狀態下解決問題。瞭解任何可能的解決方案。這種沒有思想文化的複製粘貼對你沒有任何好處。 –

+0

嗨,大衛,因爲我需要以度爲度數,所以對於我需要的東西應該是積極的,我很欣賞你的意思,並且我會第一個舉起手來承認我在trig時很糟糕,因此我已經轉向互聯網尋求幫助,這並不意味着在訴諸它之前沒有三四天的痛苦。 –

+0

-30與330相同,與-390相同。標題是週期性的。想想這是什麼意思。 –

回答

0

不要丟棄HeadingZ

這些樹標題不是相對於世界表面而是相對於您的設備方向和傾斜。

所以爲了獲得真正的標題,你必須考慮所有三軸的標題以及所有三軸的傾斜信息。

你可以閱讀有關計算航向這裏的更多信息:https://stackoverflow.com/a/1055051/3636228

是掛鉤的答案是目標C,但數學的背後,是同樣爲每一個編程語言。

+0

感謝這個銀,標記這是正確的。 –