hallo, mal was Deftiges :o) Ich brauche jemanden, der sich noch an Mathematik ( Analysis ) errinnern kann. Theoretisch durchkaemmt habe ich das Ganze. Die Loesung liegt auf der Hand, aber die Mathematik laesst mich im Stich. Zum Einsteigen das hier: http://andre-michelle.com/bin/normale.swf http://andre-michelle.com/bin/normale.fla Die Idee ist, dass der kuerzeste Abstand zur Bezierkurve sich ueber die Normale zum Punkt finden laesst. Bezierkurve: var p0 = { x: -250, y: 100 }; var p1 = { x: 0, y: -300 }; // controlpoint var p2 = { x: 250, y: 120 }; Ueber den Parameter 't' von 0 bis 1 erhalte ich x,y Coordinaten auf der Kurve ueber: x = ( 1 - t ) * ( 1 - t ) * p0.x + 2 * t * ( 1 - t ) * p1.x + t * t * p2.x; y = ( 1 - t ) * ( 1 - t ) * p0.y + 2 * t * ( 1 - t ) * p1.y + t * t * p2.y; Ueber die erste Herleitung des Casteljau Algorithmus erhalte ich die Tangente im berechneten Punkt: Hilfspunkt: c = { x: ( 1 - t ) * p1.x + t * p2.x , y: ( 1 - t ) * p1.y + t * p2.y }; Vektor Tangente: dx = c.x - x; dy = c.y - y; Laenge des Vektors: d = Math.sqrt ( dx * dx + dy * dy ); Einheitsvektor: vx = dx / d; vy = dy / d; Normalen Vektor: nx = vy; ny = -vx; Schoen. Was ich brauche ist eine Formel, die nach 't' aufgeloest, mir den 't' Wert liefert, der eine Normale durch den Punkt, dessen Abstand ich bestimmen will, zurueckgibt. also: t = Formel ( Pdist , P0 , P1 , P2 ); Das muss moeglich sein, aber mein MatheAbi ist 10 Jahre her :o) Wer kann helfen ? P.S. Das Ergebnis ist sicher interessant. Es liesse sich mit ungeheuerer Performance exakte Kollisionsabfragen mit Bezierkurven herleiten. Meine ersten Versuche in die Richtung findet ihr auf meiner Webseite, allerdings habe ich dort die Kurve in 'n' Liniensegmente unterteilt. -- andre michelle extrajetzt http://www.extrajetzt.com flashblog: http://www.andre-michelle.com ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------