Angle difference between two bearings: Difference between revisions
Content added Content deleted
Line 1,356: | Line 1,356: | ||
1174.8380510598456 ∠ -154146.66490124757 = -161.5029523074156 |
1174.8380510598456 ∠ -154146.66490124757 = -161.5029523074156 |
||
60175.77306795546 ∠ 42213.07192354373 = 37.29885558827</pre> |
60175.77306795546 ∠ 42213.07192354373 = 37.29885558827</pre> |
||
=={{header|Phix}}== |
|||
<lang Phix>function tz(atom a) |
|||
-- trim trailing zeroes and decimal point |
|||
string res = sprintf("%16f",a) |
|||
for i=length(res) to 1 by -1 do |
|||
integer ch = res[i] |
|||
if ch='0' or ch='.' then |
|||
res[i] = ' ' |
|||
end if |
|||
if ch!='0' then exit end if |
|||
end for |
|||
return res |
|||
end function |
|||
procedure test(atom b1, b2) |
|||
atom diff = mod(b2-b1,360) |
|||
diff -= iff(diff>180?360:0) |
|||
printf(1,"%s %s %s\n",{tz(b1),tz(b2),tz(diff)}) |
|||
end procedure |
|||
puts(1," b1 b2 diff\n") |
|||
puts(1,"---------------- ---------------- ----------------\n") |
|||
test(20,45) |
|||
test(-45,45) |
|||
test(-85,90) |
|||
test(-95,90) |
|||
test(-45,125) |
|||
test(-45,145) |
|||
test(29.4803,-88.6381) |
|||
test(-78.3251,-159.036) |
|||
test(-70099.74233810938,29840.67437876723) |
|||
test(-165313.6666297357,33693.9894517456) |
|||
test(1174.8380510598456,-154146.66490124757) |
|||
test(60175.77306795546,42213.07192354373)</lang> |
|||
{{out}} |
|||
<pre> |
|||
b1 b2 diff |
|||
---------------- ---------------- ---------------- |
|||
20 45 25 |
|||
-45 45 90 |
|||
-85 90 175 |
|||
-95 90 -175 |
|||
-45 125 170 |
|||
-45 145 -170 |
|||
29.4803 -88.6381 -118.1184 |
|||
-78.3251 -159.036 -80.7109 |
|||
-70099.742338 29840.674379 -139.583283 |
|||
-165313.66663 33693.989452 -72.343919 |
|||
1174.838051 -154146.664901 -161.502952 |
|||
60175.773068 42213.071924 37.298856 |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |