Exemplo n.º 1
0
 public void ConvertRadiansToDegrees_ShouldReturnCorrectValues()
 {
     Assert.That(_converter.ConvertRadiansToDegrees(0), Is.EqualTo(0));
     Assert.That(_converter.ConvertRadiansToDegrees(Math.PI * 0.5), Is.EqualTo(90));
     Assert.That(_converter.ConvertRadiansToDegrees(Math.PI * 1.0), Is.EqualTo(180));
     Assert.That(_converter.ConvertRadiansToDegrees(Math.PI * 1.5), Is.EqualTo(270));
     Assert.That(_converter.ConvertRadiansToDegrees(Math.PI * 2.0), Is.EqualTo(360));
 }
Exemplo n.º 2
0
        public double CalculateBearing(IPosition pos1, IPosition pos2)
        {
            var lat1 = _angleConverter.ConvertDegreesToRadians(pos1.Latitude);
            var lat2 = _angleConverter.ConvertDegreesToRadians(pos2.Latitude);
            var dLon = _angleConverter.ConvertDegreesToRadians(pos2.Longitude) - _angleConverter.ConvertDegreesToRadians(pos1.Longitude);

            var y    = Math.Sin(dLon) * Math.Cos(lat2);
            var x    = Math.Cos(lat1) * Math.Sin(lat2) - Math.Sin(lat1) * Math.Cos(lat2) * Math.Cos(dLon);
            var brng = Math.Atan2(y, x);

            return((_angleConverter.ConvertRadiansToDegrees(brng) + 360) % 360);
        }