Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Winkel zwischen zwei Punkten?!

  Alt 28. Aug 2009, 11:18
Einen Winkel zwischen 2 Punkten gibt es nicht. Was du hier meinst ist der Winkel einer Geraden gegeben durch 2 Punkte zu einer Koordinatenachse. Allerdings hat das ganze ein Problem: Der Winkel wird immer positiv und zwischen 0..PI/2 liegen, was heisst dass du quasi immer nur nach "oben rechts" guckst. Die Quadrantenbestimmung kann man zwar machen, ist aber wieder zusätzlicher Rechenaufwand.* Letztlich sind triginometrische Ansätze fast immer langsamer, ungenauer und "mehr Code" als die Alternative: Du ersparst ne Menge Ärger wenn du das Vektoriell an gehst.
*Edit: ATan2 macht diese Unterscheidung, dennoch bist du mit ein wenig Rumvektorn am Ende deutlich besser dran.

Sagen wir mal P0=(x0, y0) ist wo dein Sprite gerade ist, und P1=(x1, y1) ist der Punkt auf den geklickt wurde. Dann ist V'=(x1-x0, y1-y0) der Vektor der von P0 aus auf P1 zeigt. (P0+V'=P1)
Um von P0 aus nun schrittweise (also animiert) zu P1 zu gelangen, musst nun immer nur Bruchstücke von V' zu P0 addieren: P0+t*V'=P', wobei t|[0..1]. Bei t=0 ist P'=P0, und bei t=1 ist P'=P1.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat