[ascoders] Re: distanz punkt bezierKurve

Kann es da nicht mehrere  Lösungen geben ?
Zum Beispiel wenn die Kurve einen Viertelkreis
bildet und der Punkt in der Mitte des Viertelkreises
liegt ?

Geht das dann überhaupt mit einer Formel ?

mfg r.


----- Original Message -----
From: "Andre Michelle" <am@xxxxxxxxxxxxxxxxxx>
> 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   : http://www.freelists.org/archives/ascoders/
> Optionen : http://www.freelists.org/list/ascoders
> ------------------------------------------------------
>

------------------------------------------------------
Archiv   : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: