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.

9
demandé sur Community 2011-11-21 23:25:20

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.

16
répondu JohnPS 2011-11-21 20:38:40