Courbes de Bézier cubique-get Y pour un X donné
j'ai une courbe de bézier cubique où les premier et dernier points sont donnés (à savoir P0(0,0) et P3(1,1)).
Les deux autres points sont définis comme suit: cubic-bezier(0.25, 0.1, 0.25, 1.0) (X1, Y1, X2, Y2, ces valeurs ne doivent pas être plus petites ou plus grandes que 0 ou 1, respectivement)
Maintenant ce que je dois faire pour obtenir la coordonnée Y pour un X donné, en supposant qu'il seul? (Je sais que dans certaines circonstances, il peut y avoir plusieurs valeurs, mais laissons-les de côté. Je suis Je ne fais pas de science de fusée ici, je veux juste être en mesure D'obtenir Y plusieurs fois par seconde pour faire des transitions)
j'ai réussi à creuser: y coordonnée pour un X Cube donné, mais je ne comprends pas ce xTarget.
OH, et ce n'est pas du tout un devoir, je suis juste un peu ennuyé par le fait qu'il n'y a pas de choses compréhensibles sur les courbes cubiques de bezier sur internet.
1 réponses
Si vous avez
P0 = (X0,Y0)
P1 = (X1,Y1)
P2 = (X2,Y2)
P3 = (X3,Y3)
Alors pour tout t
[0,1]
vous obtenez un point sur la courbe donnée par les coordonnées
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
si vous recevez un x
valeur, alors vous devez trouver qui t
valeurs [0,1]
correspondent à ce point sur la courbe, puis utiliser ces t
valeurs pour trouver le y
coordonner.
Dans le X(t)
équation ci-dessus, définir le côté gauche de votre x
valeur et le plug-in X0
,X1
, X2
,X3
. Cela vous laisse avec un polynôme cubique avec variable t
. Vous résolvez cela pour t
fiche t
valeur Y(t)
équation pour obtenir le y
coordonner.
Résolution polynôme cubique est délicat, mais peut être fait avec soin en utilisant l'une des méthodes pour résoudre un polynôme cubique.