Jump to content

Angle difference between two bearings: Difference between revisions

Line 1,356:
1174.8380510598456 ∠ -154146.66490124757 = -161.5029523074156
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}}==
7,820

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.