Thema: Delphi Winkel - Rotation

Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Winkel - Rotation

  Alt 20. Dez 2005, 21:40
Ich könnte dir besser antworten, wenn ich wüsste, wie das Bewegen genau von Statten gehen soll . Wenn du es in einer Animation bewegst und deshalb wirklich immer nur um ca. 1-2 Pixel verschieben kannst (und der Winkel sich ständig ändert), musst du intern Floats für die Position verwenden und zum Zeichnen wieder runden. Falls du die GR32-Lib hast, kannst du einfach GR32.TFloatPoint und die vielen Routinen dazu benutzen. Falls du das Objekt auch über eine längere Strecke auf einmal bewegen kannst, musst du das Ergebnis von sin/cos mit dem Radius multiplizieren, mit größerem Radius verringert sich die Ungenauigkeit.
Delphi-Quellcode:
// Player um 10 Pixel bewegen
// Das Runden sollte nicht mehr sichtbar sein
Player.Pos.X := Round(Player.Pos.X + 10 * cos(DegToRad(Player.Winkel)));
Player.Pos.Y := Round(Player.Pos.Y + 10 * sin(DegToRad(Player.Winkel)));
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat