3

私はcで自律型rcヘリコプターに取り組み始めました。ベアリングアキュラトリーを計算する方法を見つけるのに助けが必要です。2セットの座標(緯度と経度)を使用しています。1つは現在の場所で、もう1つは目的地です。緯度と経度を10進形式に変換したので...

40°58'19.86"N = 40.972183
74°14'52.74"W = 74.247983

誰かが私にcのコードを見せて、私が使用できるベアリングまたは式を見つけることができますか?

http://www.movable-type.co.uk/scripts/latlong.htmlを確認しましたが、cに転送すると、結果は意味がありません。

これは私が試したことです:

 double x = Sin(Longitude2 - Longitude1) * Cos(Latitude2);
 double y = Cos(Latitude1) * Sin(Latitude2) - Sin(Latitude1) * Cos(Latitude2) * Cos(Longitude2 - Longitude1);
 double heading = (Atan2(x, y) % 2 * 3.14159265) (180/3.14159265);
4

2 に答える 2

2

計算する前に座標を度からラジアンに変換しましたか?

angleRad = 3.14159265 * angleDeg / 180;

bearing = Atan2(y, x); そのウェブサイトで。方位は、rad から deg に変換する必要があります。

bearing = 180 * bearing / 3.14159265; 最終的に負の値の場合:

bearing = bearing + 360;

上記の規則 ("%" を使用) を使用してこれを記述する方法がわかりません。

Latitude1 と Longitude1 は観測点の座標です。 Latitude2 と Longitude2 は目的地の座標です。

その Web サイトの式はうまく機能します。

于 2013-06-15T19:17:23.470 に答える
1

あなたが検討している非常に小さな領域の場合、世界は平らであると想定できます。これがローカルでのみ機能する必要がある場合は、地面の緯度/経度の値をメートル (またはフィート) で事前に計算できます。

次に、デルタ緯度/経度を距離に変換し、通常の三角関数を実行します。

距離を緯度/経度に変換するには、Google Earth を使用して測定するか 、緯度または経度をメートルに変換する方法を教えてください。

于 2012-08-12T01:55:08.833 に答える