Изначально я хотел использовать четыре точки (поскольку кривая Безье определяется 4 точками), но это вынуждает меня грубо форсировать позицию, поэтому я попробовал другой подход, и теперь мне нужна помощь:
У меня есть начальная точка P0, конечная точка P1 и наклоны m0 и m1, которые должны дать мне начальный / конечный наклон для вычисления кривой Безье между ними.
Кривая должна быть в форме функции (3-й степени), поскольку мне нужно получить высоту y заданной точки x.
Используя HTML5Canvas я могу без проблем нарисовать кривую Безье и используя эту функцию
, который позволяет мне вычислить любую заданную точку с учетом процента пути, которым я могу получить центральную точку кривой. Но мне это не нужно в зависимости от t, а от y в зависимости от x, поэтому не на полпути кривой, а на половине расстояния x между P0 и P1.
Изображение для визуализации:
Слева - то, что я могу вычислить, справа - то, что мне нужно.
Я пытался вычислить кубическую функцию, учитывая две точки P0, P1, а также наклоны m0, m1, что приводит к четырем уравнениям, которые я не могу решить с помощью только переменных входных данных. Я также пытался использовать вышеупомянутую функцию для вычисления t, используя значение x (которое известно), но там тоже нет кубиков.
Мне нужно избегать использования аппроксимаций или дорогостоящих циклов для этих вычислений, поскольку они выполняются много раз в секунду для многих объектов, поэтому этот ответ для меня неосуществим.
Любая помощь приветствуется.