34 lines
941 B
Text
34 lines
941 B
Text
import ballerina/io;
|
|
|
|
function subtract(float b1, float b2) returns float {
|
|
float d = (b2 - b1) % 360.0;
|
|
if d < -180.0 { d += 360.0; }
|
|
if d >= 180.0 { d -= 360.0; }
|
|
return d.round(4);
|
|
}
|
|
|
|
public function main() {
|
|
float[][] 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]
|
|
];
|
|
|
|
io:println("Differences (to 4dp) between these bearings:");
|
|
foreach var pair in pairs {
|
|
float p0 = pair[0];
|
|
float p1 = pair[1];
|
|
float diff = subtract(p0, p1);
|
|
string offset = p0 < 0.0 ? " " : " ";
|
|
io:println(`${offset}${p0} and ${p1} -> ${diff}`);
|
|
}
|
|
}
|