Finden Sie Schnittpunkte zwischen einer parametrisierten Parabel und einer Linie

Ich versuche, die Werte des Parameters zu finden T an den Schnittpunkten zwischen einer allgemeinen 2D-Parabel (als parametrische Funktion von T ) und eine Gerade, deren Gleichungen aus zwei Punkten abgeleitet werden können P Und Q ( P Q ). Die Parabel ist wie folgt definiert:

X ( T ) = 1 2 A X T 2 + v X T + X 0 j ( T ) = 1 2 A j T 2 + v j T + j 0

Meine Interesse:

Wenn ich diese Lösung finden könnte, könnte ich die Zeit bis zur Kollision zwischen zwei nicht rotierenden, starren Liniensegmenten vorhersagen. Durch die Verwendung der relativen Bewegung zwischen ihnen als die A Und v in dieser parabolischen Kurve für jeden Punkt und wenn ich den Schnittpunkt zwischen ihm und dem anderen Liniensegment finde, kann ich den kleinsten finden T > 0 so dass die Linien kollidieren.

Dies wäre für eine Physik-Engine, und die Verwendung der Beschleunigung in der Berechnung würde einige enorme Effizienzgewinne ermöglichen (Kollisionen müssen nicht ständig zwischen jedem Paar von Liniensegmenten vorhergesagt und behandelt werden, sondern nur während relevanter Zeitrahmen oder wenn sich die Beschleunigung ändert).

Bearbeiten:

Dank Andrea Mori konnte ich diese Gleichung lösen (angesichts der durch definierten Linie P Und Q ):

( Q j P j ) X ( T ) ( Q X P X ) j ( T ) | P × Q | = 0

(Durch die Behandlung A X B j A j B X als Äquivalent zu | A × B | für 2D). Dann Auswechseln X ( T ) Und j ( T ) , konnte ich auf mehr Kreuzprodukte vereinfachen:

1 2 ( | A × Q | | A × P | ) T 2 + ( | v × Q | | v × P | ) T + ( | R × Q | | R × P | | P × Q | ) = 0

Die quadratische Formel kann dann mit dem gut sichtbaren angewendet werden A , B , Und C Werten (obwohl es hässlich werden würde, es auszuschreiben). Eine negative Diskriminante ( B 2 4 A C ) zeigt keine Kollision an, Null gibt genau eine an und positiv gibt zwei (die kleinste) an T > 0 der wichtigste ist).

Ich denke, die zweite Formel würde sich dann in 3D übersetzen, obwohl ich es nicht weiß, ohne es weiter zu bewerten.

Eine Parabel mit einer beliebigen Symmetrieachse wird immer noch als Parabel bezeichnet: en.wikipedia.org/wiki/Parabola#General_parabola
Sind Ihre Parabeln zufällig quadratische Bézier-Kurven?
Jedenfalls: Die symbolischen Formeln sehen furchtbar kompliziert aus; Sie könnten besser dran sein, eine numerische Methode wie Newton-Raphson zum Generieren Ihrer Schnittpunkte zu verwenden.
Ich bin mir nicht sicher, da ich nicht viel über Bézierkurven weiß. Es sieht so aus, als könnte es sich um einen Sonderfall handeln, bei dem einige P0 bis P1 parallel zur Y-Achse und einige P1 bis P2 parallel zur X-Achse sind.

Antworten (1)

Wenn P = ( X P , j P ) Und Q = ( X Q , j Q ) die Linie dazwischen P Q Gleichung hat X X P X Q X P = j j P j Q j P die wir umschreiben können als

A X + B j + C = 0 ,
wo die Koeffizienten A , B Und C lassen sich ganz einfach berechnen.

Nun, um die Werte des Parameters zu erhalten T für die Ihr generischer Parabelpunkt ( X ( T ) , j ( T ) ) trifft die Linie P Q Sie müssen nur die Gleichung lösen (in T )

A X ( T ) + B j ( T ) + C = 0.
Dies ist eigentlich eine einfache Aufgabe, da es sich nur um eine quadratische Gleichung handelt.

Beachten Sie, dass das Verfahren eigentlich allgemeiner ist: Es kann leicht angepasst werden, um die Punkte zu finden, an denen eine beliebige Kurve in parametrischer Form auf eine bestimmte Linie trifft. Natürlich stößt man im Allgemeinen auf das Problem, dass die endgültige Gleichung möglicherweise nicht leicht lösbar ist.

Ich wünschte, ich hätte den Ruf, auch abzustimmen, danke!