Angle difference between two bearings: Difference between revisions
Content added Content deleted
m (Fixed XBS example) |
|||
Line 2,393: | Line 2,393: | ||
1174.84 -154146.66 -161.50 |
1174.84 -154146.66 -161.50 |
||
60175.77 42213.07 37.30 |
60175.77 42213.07 37.30 |
||
</pre> |
|||
=={{header|Objeck}}== |
|||
{{trans|Java}} |
|||
<lang objeck>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; |
|||
} |
|||
}</lang> |
|||
{{output}} |
|||
<pre> |
|||
Input in -180 to +180 range |
|||
25 |
|||
90 |
|||
175 |
|||
-175 |
|||
170 |
|||
-170 |
|||
170 |
|||
-170 |
|||
-118.118 |
|||
-80.7109 |
|||
Input in wider range |
|||
-139.583 |
|||
-72.3439 |
|||
-161.503 |
|||
37.2989 |
|||
</pre> |
</pre> |
||