Einzelnen Beitrag anzeigen

mare_crisium

Registriert seit: 6. Nov 2005
17 Beiträge
 
Delphi 5 Standard
 
#6

Re: Frage zu Winkelberechnungen...

  Alt 29. Nov 2005, 19:50
md_mse,

der Irrtum bei Deinem ersten Ansatz ist folgender: In der Formel

Delphi-Quellcode:
  LenX := XKoordinateVonSplinePunkt;
  LenY := YKoordinateVonSplinePunkt;
  VecLen := Sqrt(Sqr(LenX) + Sqr(LenY));
  Yaw := ArcSin(YKoordinateVonSplinePunkt / VecLen);
geht der Vektor immer vom Nullpunkt aus zum augenblicklichen Punkt (LenX|LenY). Der Winkel, den Du herausbekommst, ist deshalb immer der Winkel zwischen dem Vektor vom Nullpunkt nach (LenX|LenY) und der x-Koordinate. Du willst aber, wie shmia richtig erkannt hat, die Ableitung der Splinefunktion haben, um Dein Objekt immer die Kurve entlang gucken zu lassen.

Bei mir ist das mit der Mathe auch schon ein Weilchen her, aber ich würde das so machen: Du suchst die Steigung:

Delphi-Quellcode:
. dy
.s = ----
. dx
Das ist aber nicht so ohne Weiteres zu berechnen, weil sowohl x, als auch y von "step" abhängen. Erinnerst Du Dich noch an die Kettenregel beim Ableiten von Funktionen? Die verwendet man hier mit Vorteil:

Delphi-Quellcode:
. dy
. -----
. dy dy dstep dstep
.s = ---- = ------- * -------- = --------------
. dx dstep dx dx
. -------
. dstep
Du musst also die y-Komponente Deiner Spline nach "step" ableiten und durch die Ableitung der x-Komponente der Spline nach "step" dividieren. Zeig' die Formel bloss keinem Mathematiker! Der kriegt dann nämlich einen Herzanfall (weil er alle Ausnahmen kennt, unter denen meine Formel falsch ist)!

Probier's trotzdem mal und lass uns wissen ob's damit klappt.

mare_crisium
  Mit Zitat antworten Zitat