Если у вас есть
P0 = (X0,Y0)
P1 = (X1,Y1)
P2 = (X2,Y2)
P3 = (X3,Y3)
Тогда для любого t
в [0,1]
вы получите точку на кривой, заданную координатами
X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3
Y(t) = (1-t)^3 * Y0 + 3*(1-t)^2 * t * Y1 + 3*(1-t) * t^2 * Y2 + t^3 * Y3
Если вы получитеx
, то вам нужно найти, какие t
значения в [0,1]
соответствуют этой точке на кривой, а затем использовать эти t
значения, чтобы найти y
координату.
ВX(t)
уравнение выше, установите левую сторону на значение x
и подключите X0
, X1
, X2
, X3
.Это оставляет вас с кубическим полиномом с переменной t
.Вы решаете это для t
, затем вставляете это значение t
в уравнение Y(t)
, чтобы получить координату y
.
Решение кубического полинома сложно, носделано осторожно, используя один из методов для решения кубического полинома.