Как получить значение Y на кривой безье по X?
Антон Мудренок , как вы категорично говорите что никак нельзя... а если очень хочется?
Пусть есть четыре точки
Обычно кривая задается параметрически вот в таком виде
Если произвести нехитрые преобразования получаем более привычные взгляду кубические уравнения относительно t
И аналогично для y(t).
Если мы рисуем только из A(0,0) в D(1,1) (имеется в виду вот такая картинка) - можно упростить полученное уравнение (а еще лучше привести его сразу к каноническому виду, но это уже для автора вопроса задачка)
Тут и начинается собственно алгоритм, который нам нужен:Задаем x(t)решаем кубическое уравнение относительно t (например по формуле Кардано), получаем 3 корня, отбрасываем комплексныеоставшиеся подставляем в уравнение для y(t) - получаем необходимые значения y
(Если рисуем из A(0,0) в D(1,1) и координаты остальных точек также от 0 до 1, то всегда будет получаться один корень)
Так что в целом - можно посчитать необходимые значения с достаточно большой точностью
Пришлось писать самому__getYfromXBezier (x, points) {
        for (let i = 0; i < points.length - 1; i++) {
            if (points[i].x <= x && x <= points[i + 1].x) {
                const deltaX = x - points[i].x;
                let k = ((points[i+1].y - points[i].y) / (points[i+1].x - points[i].x));
                return deltaX * k + points[i].y;
            }
        }
    }