Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mauskoordinaten (X,Y) in Grad umrechnen? (https://www.delphipraxis.net/79424-mauskoordinaten-x-y-grad-umrechnen.html)

Namenloser 22. Okt 2006 13:28

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Var
A: double; // double statt integer -> Gleitkommazahl
begin
A := ArcTan2(Y, X);
Caption := FloatToStr(A*180/pi);
{ Wenn du keine Kommazahlen willst:
Caption := IntToStr(trunc(A*180/pi));
}
end;
Für Gleitkommazahlen musst du FloattoStr oder FloatToStrF verwenden.
Mit *pi/180 wird die Zahl ins Gradmaß umgerechnet, da du sonst eine etwas unhandliche Zahl im Bogenmaß erhälst.

smart 22. Okt 2006 13:40

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Zitat:

Zitat von NamenLozer
Für Gleitkommazahlen musst du FloattoStr oder FloatToStrF verwenden.
Mit *pi/180 wird die Zahl ins Gradmaß umgerechnet, da du sonst eine etwas unhandliche Zahl im Bogenmaß erhälst.

Hi,

Vielen Dank für Deine Mühe. Ich habe es geschnallt. Noch ne dumme Frage, gibt es in Delphi auch 'FloatToInt' oder soetwas? Oder muss ich Float in Integer selbst umrechnen?

Gruß
Heike

hanselmansel 22. Okt 2006 13:42

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Delphi-Referenz durchsuchenRound()
Delphi-Referenz durchsuchenTrunc()

smart 22. Okt 2006 13:56

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Vielen Dank an Alle!

Mit
Delphi-Quellcode:
Round(ArcTan2(Y, X)* 100)
klappt es.

Gruß
Heike

Flare 22. Okt 2006 15:44

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Zitat:

Zitat von smart
Delphi-Quellcode:
Round(ArcTan2(Y, X)* 100)

Bogenmaß * 100?

Muss ich den Sinn erkennen?
Mach es doch so:
Delphi-Quellcode:
Round(ArcTan2(Y, X)*180/Pi)

Flare

smart 22. Okt 2006 18:27

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Zitat:

Zitat von Flare
Bogenmaß * 100?

Muss ich den Sinn erkennen?
Mach es doch so:
Delphi-Quellcode:
Round(ArcTan2(Y, X)*180/Pi)

Hi.

Da bekomme ich zu kleine Werte. Kein Wert über 150. An 360 garnicht zu denken.

Gruß
Heike

3_of_8 22. Okt 2006 18:41

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Delphi-Quellcode:
round(radtodeg(arctan2(X,Y)))
So müsste es gehen.

Khabarakh 22. Okt 2006 18:49

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Warum bitte jetzt wieder zu ArcTan wechseln :shock: ?

@heike: Das sollte eigentlich stimmen. Beachte aber, dass die Wertemenge der Funktion (mathematisch korrekt) das Intervall [-Pi, Pi] (= -180° bis 180°) und nicht [0, 2 Pi] ist, und durch die auf dem Bildschirm normalerweise nach unten verlaufende Y-Achse Winkel genauso wie Koordinaten gespiegelt sind.

[edit]Ok, zu ArcTan2 editiert ;) . RadToDeg ist trotzdem gleichwertig zu * 180 / Pi. [/edit]

3_of_8 22. Okt 2006 18:50

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Hab ich schon längst editiert. ;)

Khabarakh 22. Okt 2006 18:58

Re: Mauskoordinaten (X,Y) in Grad umrechnen?
 
Ich auch :mrgreen: .
Es gäbe sogar einen Fall, in dem RadToDeg <> * 180 / Pi ist:
Man redefiniert Pi ;) . Ein Beitrag in "The Daily WTF" wäre einem damit auch gleich sicher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz