Projetez un bezier cubique p1, p2, p3, p4 sur la ligne p1, p4. Lorsque p2 ou p3 ne se projette pas sur le segment de droite entre p1 et p4, la courbe va bomber à partir des points d'ancrage. Existe-t-il un moyen de calculer la valeur T lorsque la tangente de la courbe est perpendiculaire à la ligne d'ancrage? Cela peut également être indiqué comme trouvant les valeurs T où la courbe projetée est la plus éloignée du centre du segment de ligne p1, p4. Lorsque p2 et p3 projettent sur le segment de droite, les solutions sont respectivement 0 et 1. Existe-t-il une équation pour résoudre le cas le plus intéressant?Calculer la valeur du bezier T cubique où la tangente est perpendiculaire à la ligne d'ancrage
La valeur T ne semble dépendre que de la distance entre les points de contrôle mappés et le segment de ligne d'ancrage.
Je peux déterminer la valeur en raffinant des suppositions, mais j'espère qu'il y a une meilleure façon.
Edit:
A partir de p1, .., p4 en 2D avec des valeurs x1, y1, ..., x4, y4 J'utilise le code suivant en fonction de la réponse de Philippe:
dx = x4 - x1;
dy = y4 - y1;
d2 = dx*dx + dy*dy;
p1 = ((x2-x1)*dx + (y2-y1)*dy)/d2;
p2 = ((x3-x1)*dx + (y3-y1)*dy)/d2;
tr = sqrt(p1*p1 - p1*p2 - p1 + p2*p2);
t1 = (2*p1 - p2 - tr)/(3*p1 - 3*p2 + 1);
t2 = (2*p1 - p2 + tr)/(3*p1 - 3*p2 + 1);
Dans l'échantillon que j'ai regardé, t2 a dû être soustrait de 1.0 avant d'être correct.
Vous pouvez également essayer http://mathoverflow.net/ –