2009-12-05 6 views
4

En essayant de mettre en œuvre un test d'intersection entre la courbe de Bezier et le segment de ligne. La chose la plus proche que ma recherche a trouvée est de prendre la courbe de bezier (limitons-la à trois points de contrôle pour plus de simplicité), trouvez la fonction mathématique générant cette courbe et placez-la sur origo. Ensuite, en utilisant la fonction pour le segment de ligne comme une autre fonction et laissez-les être égaux et résoudre l'équation.Comment trouver la fonction mathématique définissant une courbe de Bézier

De nombreuses sources indiquent la solution ci-dessus (sauf si je les ai mal comprises), mon problème est que je ne trouve pas le moyen de calculer la fonction mathématique qui génère la courbe de Bézier.

Oh, et s'il vous plaît indiquer si Im complètement hors piste avec trouver le point d'intersection.

Répondre

12

Une courbe de Bézier est une fonction paramétrique. Une courbe de Bézier quadratique (par exemple trois points de contrôle) peut être exprimée comme suit: F (t) = A (1 - t)^2 + 2B (1 - t) t + Ct^2A, B et C sont des points et t va de zéro à un.

Cela vous donnera deux équations:

x = a (1 - t)^2 + 2b (1 - t) t + ct^2

y = d (1 - t)^2 + 2e (1 - t) t + pi^2

Si vous ajoutez par exemple l'équation de la ligne (y = kx + m) à cela, vous vous retrouverez avec trois équations et trois inconnues (x, et et t).

+0

La fonction que vous avez définie B (t) semble s'inclure dans sa définition, est-ce voulu? Ou sont A, B et C deux dimensions (au moins dans mon exemple) des coordonnées? – Mizipzor

+0

A, B et C sont censés être des coordonnées bidimensionnelles, oui. La réutilisation de B n'était pas intentionnelle. –

+1

manquait un coefficient de 2 sur les moyens termes. devrait être: F (t) = A (1 - t)^2 + 2 * B (1 - t) t + Ct^2 – zanlok

Questions connexes