找到2度指南针之间最接近的区别 - Javascript

Tim*_*len 1 html javascript jquery radians

我基本上试图找到指南针两点之间有多少度.例如,如果一个人面对270并且他们的指南针是280,那么这两个点之间有10度.如果相对于第一个标题,我还想要一个负数,如果它在左边,在右边是正数.

例如,标题为350和020时会出现问题.这两个点相差30度,但结果为-330.

以下是我的代码示例:

function ConvertToRadians(_var)
{
    return _var * (Math.PI/180);
}
function ConvertToDegrees(_var)
{
    return _var * (180/Math.PI);
}
function GetHeadingDiff(_Heading1, _Heading2)
{   
    return ConvertToDegrees((ConvertToRadians(_Heading2) - ConvertToRadians(_Heading1)));
}

$(document).ready(function (){
    $('#process').click(function (e){
        e.preventDefault();
        var Hdg1 = parseFloat($('#heading1').val());
        var Hdg2 = parseFloat($('#heading2').val());
        $('#results').html(GetHeadingDiff(Hdg1,Hdg2));
    });
});

<input id="heading1" type="text" />
<input id="heading2" type="text" />
<button id="process" type="button">Submit</button>
<div id="results">
</div>
Run Code Online (Sandbox Code Playgroud)

我确信有一些简单的数学函数我不知道,我似乎无法弄明白.

这是一个jsfiddle链接http://jsfiddle.net/dTmPn/3/

Mat*_*att 8

function GetHeadingDiff(_Heading1, _Heading2)
{   
    return (_Heading2-_Heading1+540) % 360 - 180;
}
Run Code Online (Sandbox Code Playgroud)

例子:

GetHeadingDiff( 280, 270 )
-10
GetHeadingDiff( 270, 280 )
10
GetHeadingDiff( 350, 20 )
30
GetHeadingDiff( 20, 350 )
-30
Run Code Online (Sandbox Code Playgroud)