Dies ist definitiv die Grenzen für meine trig Wissen.Berechnung des Schnittpunkts der quadratischen Bezier-Kurve
Gibt es eine Formel zum Berechnen eines Schnittpunkts zwischen einer quadratischen Bezierkurve und einer Linie?
Beispiel:
im Bild unten, ich habe P1, P2, C (die der Steuerpunkt ist) und X1, X2 (die für meine besondere Berechnung ist nur eine gerade Linie auf der X-Achse .)
Was ich gerne wissen möchte, ist die X-, Y-Position von T sowie der Winkel der Tangente bei T. am Schnittpunkt zwischen der roten Kurve und der schwarzen Linie.
Nach einer wenig Forschung und this Frage zu finden, ich weiß, ich kann:
t = 0.5; // given example value
x = (1 - t) * (1 - t) * p[0].x + 2 * (1 - t) * t * p[1].x + t * t * p[2].x;
y = (1 - t) * (1 - t) * p[0].y + 2 * (1 - t) * t * p[1].y + t * t * p[2].y;
meine X zu berechnen, Y-Position zu jedem entlang der Kurve gegebenen Punktes. Mit dieser Funktion konnte ich einfach eine Reihe von Punkten entlang der Kurve durchlaufen und prüfen, ob sich diese auf meiner X-Achse befinden. Und von dort versuche ich meinen Tangentenwinkel zu berechnen. Aber das scheint wirklich nicht der beste Weg zu sein. Jeder Mathe-Guru da draußen weiß, was der beste Weg ist?
Ich denke, dass es vielleicht ein bisschen komplizierter ist, als ich es möchte.
Vielleicht kann [Pomax] (http://pomax.github.io/bezierinfo/) Ihnen Hilfe anbieten. –
Ich bin mir ziemlich sicher, dass ich es in der Primer, im Abschnitt [Kurvenschnitt] (http://pomax.github.io/bezierinfo/#intersections) behandelt habe. Drehen Sie einfach Ihre Kurve und Linie, so dass die Linie mit der x-Achse "ausgerichtet" ist, und jetzt haben Sie "Finden der Kreuzung" auf "Wurzel finden" reduziert (mit Ausrichtung erklärt [hier] (http: // pomax. github.io/bezierinfo/#aligning)) –