Angle difference between two bearings: Difference between revisions

(Added XBS)
Line 1,739:
<pre>prompt$ jsish -u angleDifference.jsi
[PASS] angleDifference.jsi</pre>
 
=={{header|jq}}==
{{works with|jq}}
'''Works with gojq, the Go implementation of jq'''
 
Note that the `%` operator in jq produces integral results.
<lang jq># Angles are in degrees; the result is rounded to 4 decimal places:
def subtract($b1; $b2):
10000 as $scale
| (($scale * ($b2 - $b1)) % (360 * $scale)) | round / $scale
| if . < -180 then . + 360
elif . >= 180 then . - 360
else .
end;
def pairs:
[ 20, 45],
[-45, 45],
[-85, 90],
[-95, 90],
[-45, 125],
[-45, 145],
[ 29.4803, -88.6381],
[-78.3251, -159.036],
[-70099.74233810938, 29840.67437876723],
[-165313.6666297357, 33693.9894517456],
[1174.8380510598456, -154146.66490124757],
[60175.77306795546, 42213.07192354373] ;
 
"Differences (to 4dp) between these bearings:",
( pairs as [$p0, $p1]
| subtract($p0; $p1) as $diff
| (if $p0 < 0 then " " else " " end) as $offset
| "\($offset)\($p0) and \($p1) -> \($diff)" )</lang>
{{out}}
<pre>
Differences (to 4dp) between these bearings:
20 and 45 -> 25
-45 and 45 -> 90
-85 and 90 -> 175
-95 and 90 -> -175
-45 and 125 -> 170
-45 and 145 -> -170
29.4803 and -88.6381 -> -118.1184
-78.3251 and -159.036 -> -80.7109
-70099.74233810938 and 29840.67437876723 -> -139.5833
-165313.6666297357 and 33693.9894517456 -> -72.344
1174.8380510598456 and -154146.66490124757 -> -161.5029
60175.77306795546 and 42213.07192354373 -> 37.2989
</pre>
 
 
Differences (to 4dp) between these bearings:
20 and 45 -> 25
-45 and 45 -> 90
-85 and 90 -> 175
-95 and 90 -> -175
-45 and 125 -> 170
-45 and 145 -> -170
29.4803 and -88.6381 -> -118.1184
-78.3251 and -159.036 -> -80.7109
-70099.74233810938 and 29840.67437876723 -> -139.5833
-165313.6666297357 and 33693.9894517456 -> -72.344
1174.8380510598456 and -154146.66490124757 -> -161.5029
60175.77306795546 and 42213.07192354373 -> 37.2989
 
 
 
=={{header|Julia}}==
2,442

edits