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