AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winkel zwischen zwei Punkten?!

Ein Thema von Vasco da Gama · begonnen am 28. Aug 2009 · letzter Beitrag vom 4. Sep 2009
 
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#1

Winkel zwischen zwei Punkten?!

  Alt 28. Aug 2009, 10:56
Hallo, nach viel googlen finde ich einfach nicht, wonach ich suche. Selbst kann ich es nicht beantworten, da ich Winkelfunktionen(sin, cos, tan, etc.) in der Schule noch nicht gelernt habe.

Ich habe einen TPoint, nennen wir ihn P1.
Dann klicke ich mit der Maus:
Delphi-Quellcode:
begin
...
  GetCursorPos(p2);
  p2 := ScreenToClient(p2);
  SetDir(round(Tan((P1.Y - P2.Y) / (P1.X - P2.X))));
...
end;
SetDir ist folgendes:
Delphi-Quellcode:
procedure TEinheit.SetDir(ADirection: Integer);
var
  w:integer;
begin
  //Reset the speed variables
  FYSpeed := 0;
  FXSpeed := 0;


  w := ADirection;

  //Set the X and the Y speed
  FXSpeed := round(cos(PI/180*w)*Speed);

  FYSpeed := round(sin(PI/180*w)*Speed);

  AnimLoop := true;
  AnimActive := true;
end;
Vielleicht inzwischen erraten, es ist ein Andorra 2D Projekt
die DoMove procedure von TEinheit ist folgende:
Delphi-Quellcode:
procedure TEinheit.DoMove(TimeGap: Double);
begin
inherited DoMove(TimeGap);
    X := X + FXSpeed * TimeGap;
    Y := Y + FYSpeed * TimeGap;
end;

Tja, egal wohin ich klicke, er läuft immer nach rechts(die Animation soll ja nach rechts laufen, aber der Sprite soll dahin laufen, wohin ich klicke...)

Info: Da ich mich ja mit Winkelfunktionen nicht auskenne, habe ich mir die Sinus Cosinus und ArcTangens dinger aus Demos rausgeschnappt....
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz