Кривая Безье - не более чем два полинома: X(t), Y(t)
.
Кубический:
x = ax*t^3 + bx*t^2 + cx*t + dx
0 <= t <= 1
y = ay*t^3 + by*t^2 + cy*t + dy
Так что, если у вас есть кривая - у вас есть коэффициенты поли. Если вы перемещаете свою точку и знаете, что это параметр t
- тогда вы можете просто пересчитать коэффициенты поли - это будет система из 6 линейных уравнений для коэффициентов (для каждой точки). Система подразделяется на две системы (x и y) и может быть решена точно или с использованием некоторых численных методов - они тоже не сложны.
Итак, теперь ваша задача - вычислить контрольные точки вашей кривой, когда вы знаете явное уравнение вашей кривой.
Это также может быть приведено к линейной системе. Я не знаю, как это сделать для обобщенной кривой Безье, но это не сложно для кубических или квадрических кривых.
Кубическая кривая через контрольные точки:
B(t) = (1-t)^3*P0 + 3(1-t)^2*t*P1 + 3(1-t)*t^2*P2 + t^3*P3
Все, что вам нужно сделать, это создать стандартную полиномиальную форму (просто откройте квадратные скобки) и выровнять коэффициенты. Это обеспечит окончательную систему для контрольных точек!