41 lines
1.7 KiB
Plaintext
41 lines
1.7 KiB
Plaintext
/* Angle difference between bearings, in Jsish */
|
|
function angleDifference(bearing1:number, bearing2:number):number {
|
|
var angle = (bearing2 - bearing1) % 360;
|
|
if (angle < -180) angle += 360;
|
|
if (angle >= 180) angle -= 360;
|
|
return angle;
|
|
}
|
|
|
|
if (Interp.conf('unitTest')) {
|
|
var dataSet = [[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]];
|
|
printf(" Bearing 1 Bearing 2 Difference\n");
|
|
for (var i = 0; i < dataSet.length; i++) {
|
|
printf("%17S° %17S° %17S°\n", dataSet[i][0], dataSet[i][1],
|
|
angleDifference(dataSet[i][0], dataSet[i][1])
|
|
);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=!EXPECTSTART!=
|
|
Bearing 1 Bearing 2 Difference
|
|
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.7423381094° 29840.6743787672° -139.583283123386°
|
|
-165313.666629736° 33693.9894517456° -72.3439185186871°
|
|
1174.83805105985° -154146.664901248° -161.502952307404°
|
|
60175.7730679555° 42213.0719235437° 37.2988555882694°
|
|
=!EXPECTEND!=
|
|
*/
|