function returnAverageValue (x, pixelValuePrev, pixelValueNext) {
var ratio = Math.cbrt(2 * x - 1) / 2 + 0.5;
return pixelValuePrev * (1 - ratio) + pixelValueNext * ratio;
}
где x - координата между точками pixelValuePrev и pixelValueNext.
Это 'идея', в реальности код сложнее, с предрасчитанными значениями, функция принимает две координаты, 3 точки и жесткость, которую я чуть снизил чтобы график был более плавным, неразрывным.
var ratio = Math.cbrt(2 * x - 1) / 2 + 0.5;
return pixelValuePrev * (1 - ratio) + pixelValueNext * ratio;
}
где x - координата между точками pixelValuePrev и pixelValueNext.
Это 'идея', в реальности код сложнее, с предрасчитанными значениями, функция принимает две координаты, 3 точки и жесткость, которую я чуть снизил чтобы график был более плавным, неразрывным.