private static double CosineInterpolate(double x1, double x2, double a) { double f = (1 - Math.Cos(a * Math.PI)) * 0.5; return x1 * (1 - f) + x2 * f; } }