34 lines
1.2 KiB
Text
34 lines
1.2 KiB
Text
class AngleBearings {
|
|
function : Main(args : String[]) ~ Nil {
|
|
"Input in -180 to +180 range"->PrintLine();
|
|
GetDifference(20.0, 45.0)->PrintLine();
|
|
GetDifference(-45.0, 45.0)->PrintLine();
|
|
GetDifference(-85.0, 90.0)->PrintLine();
|
|
GetDifference(-95.0, 90.0)->PrintLine();
|
|
GetDifference(-45.0, 125.0)->PrintLine();
|
|
GetDifference(-45.0, 145.0)->PrintLine();
|
|
GetDifference(-45.0, 125.0)->PrintLine();
|
|
GetDifference(-45.0, 145.0)->PrintLine();
|
|
GetDifference(29.4803, -88.6381)->PrintLine();
|
|
GetDifference(-78.3251, -159.036)->PrintLine();
|
|
|
|
"Input in wider range"->PrintLine();
|
|
GetDifference(-70099.74233810938, 29840.67437876723)->PrintLine();
|
|
GetDifference(-165313.6666297357, 33693.9894517456)->PrintLine();
|
|
GetDifference(1174.8380510598456, -154146.66490124757)->PrintLine();
|
|
GetDifference(60175.77306795546, 42213.07192354373)->PrintLine();
|
|
}
|
|
|
|
function : native : GetDifference(b1 : Float, b2 : Float) ~ Float {
|
|
r := Float->Mod(b2 - b1, 360.0);
|
|
if (r < -180.0) {
|
|
r += 360.0;
|
|
};
|
|
|
|
if (r >= 180.0) {
|
|
r -= 360.0;
|
|
};
|
|
|
|
return r;
|
|
}
|
|
}
|