2 0-360 나침반 표제의 차이점을 알아내는 방법입니다.두 제목의 차이 얻기
이것은 내가 얼마나 멀리 떨어져 있는지 (항상 긍정적 인 출력으로) 알아내는 데 효과적이지만, 출력에 기호를 도입하기 위해 수행해야 할 작업을 파악하는 데 문제가 있습니다.
이상적인 경우, 처음 제목에서 최종 제목까지의 최단 거리가 시계 방향으로 돌아가는 경우, 표제 간의 최단 거리가 반 시계 방향으로 진행될 경우 error
에 양수 기호를 표시하고 싶습니다. error
에 음수 부호를 사용하고 싶습니다.
원하는 입력들의 몇몇 예/출력
initial
-error
0 .................... 30-final
. ......... 30
30 .................... 0 .......... -30
360 .................... 1 .......... 1
1 .......... . ......... 360 .......... -1
코드 :
/// <summary>
/// Calculate the error from a given initial heading to a final heading
/// </summary>
/// <param name="inital"></param>
/// <param name="final"></param>
/// <returns></returns>
private double GetHeadingError(double initial, double final)
{
double directionA = final - initial;
double directionB = 360 - (final + initial);
double error = 0;
if (Math.Abs(directionA) < Math.Abs(directionB))
{
error = directionA;
}
else
{
error = directionB;
}
return error;
}
은 1에서 3601 또는 -1입니까? –
Woop, 의미 -1 – chris12892