私は磁気見出しを扱っていますが、その周りの数学に少し苦労しています。機首方位が 270 度で、時計回りに 110 度回転するとします。出力として、380 度ではなく、新しい方位 020 度が必要です。次のようなことを行う最良の方法は次のとおりです。
もし (x > 360) { x = x - 360; }
または、M_PI で計算を使用して、より正確にすることはできますか?
返信ありがとうございます。
私は磁気見出しを扱っていますが、その周りの数学に少し苦労しています。機首方位が 270 度で、時計回りに 110 度回転するとします。出力として、380 度ではなく、新しい方位 020 度が必要です。次のようなことを行う最良の方法は次のとおりです。
もし (x > 360) { x = x - 360; }
または、M_PI で計算を使用して、より正確にすることはできますか?
返信ありがとうございます。
これは最善の方法かもしれません..
x = x % 360;
度の角度は、-360 より小さくても 720 より大きくてもよいモジュラー算術ノートを満たすx
任意の角度に等しいため、その場合、360 を足したり引いたりしても、期待した結果が得られません。加算または減算による純粋な計算方法が必要な場合は、次のコードを使用できます。X
X = x [360]
x
if (x >= 360){
while( x >= 360)
x -= 360;
}
}else if (x < 0){
while( x < 0)
x += 360;
}
}
X
または、より簡単に、Objective-C では、次の式を満たし、 の区間にある値を与える演算子が[0;360[
演算%
子です。そのように使用できます:
X = x % 360
ただし、角度はint
タイプではない場合があります。int
引数として取るため、その演算子は機能しません。この場合、fmod
またはfmodf
関数を使用できます。使用する構文は次のようになります。
X = fmodf(x,360)