Angle difference between two bearings: Difference between revisions
Content added Content deleted
(Added XBS) |
|||
Line 1,739: | Line 1,739: | ||
<pre>prompt$ jsish -u angleDifference.jsi |
<pre>prompt$ jsish -u angleDifference.jsi |
||
[PASS] angleDifference.jsi</pre> |
[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}}== |
=={{header|Julia}}== |