Кривая Безье вычисляет точку от одной оси

У меня есть кубическая кривая Безье. Но у меня проблема, когда мне нужна только одна точка. У меня есть только значение по оси X, и я хочу найти значение, которое соответствует оси Y до этой точки. Или найдите шаг t, по нему я могу легко вычислить ось Y.

Любая подсказка, как это сделать? Или есть какая-то формула для этого?


person Vlg    schedule 13.12.2009    source источник


Ответы (2)


Параметрическая кривая расширяется до любого измерения путем добавления коэффициентов для этих измерений. Вы уверены, что у вас все в порядке? Похоже, вы используете ось X в качестве параметра кривой t. Параметр t управляет вычислением координат X и Y с помощью двух кубических уравнений. Взгляните на Википедию, где даются довольно точные пояснения для случая 2D.

Редактировать:

Решите как общий многочлен третьей степени. Остерегайтесь, что у него может быть 3 решения.

person Cecil Has a Name    schedule 13.12.2009
comment
Да, я знаю, что параметр t управляет вычислением координат X и Y. У меня есть значение по оси X, и мне нужно значение corespondig по оси Y, но, к сожалению, я не знаю t. - person Vlg; 13.12.2009
comment
Используйте алгоритм деления пополам для аппроксимации t, поскольку эвристика использует расстояние от известного значения x до текущего вычисленного значения x на основе текущего предположения t. - person Cecil Has a Name; 13.12.2009
comment
Я думал, что есть лучшее решение. Но это должно сработать;) спасибо, братан. - person Vlg; 13.12.2009
comment
В настоящее время я ищу лучший матричный метод. Я дам Вам знать. - person Cecil Has a Name; 13.12.2009

Любое решение должно иметь дело с тем фактом, что может быть несколько решений, если кривая не X-монотонность. Рассмотрим куб Безье (0,0),(2,0),(-1,1),(1,1):

Как видите, есть 4 значения параметра (и координаты Y), при которых X==1/2.

Это означает, что если вы используете подразделение (что, вероятно, является вашим самым простым решением), вам нужно быть осторожным, чтобы ваши начальные ограничивающие значения t окружали только нужную точку.

Вы также можете догадаться, что это означает в отношении порядка алгебраического решения.

person MPG    schedule 14.12.2009