Abstand zwischen zwei Punkten und Winkelberechnung



  • Moinsen,

    hat jemand Formeln um den Abstand zwischen zwei durch x und y Punkten und den Winkel α im Dreieck auszurechnen? Waere cool wenn die Formeln direkt fuern Rechner optimiert sind damit sie schoen flott sind 🙂
    thx schonmal..



  • Abstand = sqrt((X1-X0) * ((X1-X0) + (Y1-Y0)*(Y1-Y0));

    Winkel = atan((Y1-Y0) / (X1-X0))

    ???



  • ok, thx, werd das mal probieren, hab die Testanwendung noch nicht fertig..



  • Ok, im Grunde genommen brauch ich nur den Winkel, jetz ist das Problem nur wie bekomme ich den Winkel immer? Das funktioniert naehmlich jetzt nur begrenzt, ich drehe mit der Formel Objekte nach den x,y-Koordinaten der Maus..



  • mathprob schrieb:

    Das funktioniert naehmlich jetzt nur begrenzt..

    Das funktioniert schon "immer" - rein mathematisch.

    Nur gibt es ein Problem bei +/- 90°.

    für DeltaX = 0 machst Du einfach:

    Winkel = atan((X1-X0) / (Y1-Y0)) + M_PI / 2.0



  • also wenn man das ganze mal rein mathematisch betrachtet:

    cosγ=x,yxycos \gamma = \frac{\langle x, y \rangle}{\left\| x \right\| \left\| y \right\|}
    also:
    γ=arccos(x,yxy)\gamma = arccos \left( \frac{\langle x, y \rangle}{\left\| x \right\| \left\| y \right\|} \right)

    wobei <x,y> ein skalarprodukt (normalerweiße das standartskalarprodukt ist
    ||x|| = sqrt(<x,x>)
    x,y \elem |R^n

    bei rechneroptimierung kenn ich mich zwar nicht so aus, aber bei trigonomentrischen funktinen würd ich immer mal nach der taylor-reihenentwicjluing schauen. denke da lässt sich was brauchbares finden.



  • MamboKurt schrieb:

    bei rechneroptimierung kenn ich mich zwar nicht so aus, aber bei trigonomentrischen funktinen würd ich immer mal nach der taylor-reihenentwicjluing schauen. denke da lässt sich was brauchbares finden.

    Einfach die bereits eingebauten Befehle benutzen. Vermutlich kriegt man's selbst nicht schneller. Falls doch, so zumindest nicht viel und der Aufwand dafür dürfte entsprechend hoch liegen.



  • oder so :p


Log in to reply