private void UpdateRotationalSpeed(float elapsedMilliseconds)
{
float lowerLimit = 1f * (float)Math.Sqrt(Radius);
float upperLimit = 5f * (float)Math.Sqrt(Radius);
RotationalSpeed = RotationalSpeed + 1f * (float)Math.Sqrt(0.1f * Radius) * MouseControl.RotationalAccelerationFactor - ((float)((0.001 * (double)RotationalSpeed) + (RotationalSpeed > upperLimit ? (0.001 * (double)RotationalSpeed) : 0.0))) * elapsedMilliseconds;
// keep a minimum speed
if (RotationalSpeed < lowerLimit)
RotationalSpeed = lowerLimit;
}