RosettaCodeData/Task/Angle-difference-between-tw.../XBS/angle-difference-between-tw...

32 lines
846 B
Plaintext

settype Bearing = {Angle:number}
class Bearing {
private method construct(Angle:number=0)
self.Angle=(((Angle%360)+540)%360)-180;
method ToString():string
send tostring(math.nround(self.Angle,4))+"°";
private method __sub(b2:Bearing):Bearing{
send new Bearing(self.Angle-b2.Angle);
}
}
const BearingAngles:[[number]] = [
[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]
];
foreach(v of BearingAngles){
set b1:Bearing=new Bearing(v[0]);
set b2:Bearing=new Bearing(v[1]);
log(b2::ToString()+" - "+b1::ToString()+" = "+(b2-b1)::ToString());
}