refs #291, bearing

* method to calculate bearing between coordinates
* Helper methods to normalize degrees (0..360deg), e.g. -10deg -> 350deg
This commit is contained in:
Klaus Basan
2014-07-06 16:41:34 +02:00
parent 9e4c58b209
commit d8ca4241af
4 changed files with 189 additions and 1 deletions

View File

@@ -68,7 +68,7 @@ namespace BlackMisc
bool CMath::epsilonEqual(double v1, double v2, double epsilon)
{
if (v1 == v2) return true;
return qAbs(v1-v2) <= epsilon;
return qAbs(v1 - v2) <= epsilon;
}
/*
@@ -87,5 +87,28 @@ namespace BlackMisc
return radians * 180.0 / CMath::PI();
}
/*
* Normalize degrees
*/
double CMath::normalizeDegrees(double degrees)
{
if (degrees == 0.0 || degrees == 360.0 || degrees == -360.0) return 0.0;
if (degrees > 0)
{
while (degrees >= 360.0)
{
degrees -= 360.0;
}
}
else
{
while (degrees < 0.0)
{
degrees += 360.0;
}
}
return degrees;
}
} // namespace
} // namespace