![]() |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Delphi-Quellcode:
Für Gleitkommazahlen musst du FloattoStr oder FloatToStrF verwenden.
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; Mit *pi/180 wird die Zahl ins Gradmaß umgerechnet, da du sonst eine etwas unhandliche Zahl im Bogenmaß erhälst. |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Zitat:
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 |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
|
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Vielen Dank an Alle!
Mit
Delphi-Quellcode:
klappt es.
Round(ArcTan2(Y, X)* 100)
Gruß Heike |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Zitat:
Muss ich den Sinn erkennen? Mach es doch so:
Delphi-Quellcode:
Round(ArcTan2(Y, X)*180/Pi)
Flare |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Zitat:
Da bekomme ich zu kleine Werte. Kein Wert über 150. An 360 garnicht zu denken. Gruß Heike |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Delphi-Quellcode:
So müsste es gehen.
round(radtodeg(arctan2(X,Y)))
|
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] |
Re: Mauskoordinaten (X,Y) in Grad umrechnen?
Hab ich schon längst editiert. ;)
|
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. |
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