![]() |
Probleme mit atan/atan2
Hallo,
ich programmiere ein Spiel, wofür ich die Funktion "atan" oder "atan2" brauche. Wenn ich jetzt schreibe: a := atan(50/50); oder: a := atan2(50, 50); dann kommt immer die Fehlermeldung "Spiel.pas(96): Undefinierter Bezeichner: 'atan'". Muss man am Anfang irgenteine Klasse installieren/deklahieren? Ich freue mich über Hilfe. :-D Falls du mehr anfangen kannst wenn du den Qelltext hast, dann schreib mir! |
AW: Probleme mit atan/atan2
Die Funktion müsste ArcTan() heißen.
|
AW: Probleme mit atan/atan2
Richtig, und
![]()
Delphi-Quellcode:
interface
uses System.Math ... ... ; ... |
AW: Probleme mit atan/atan2
Und nicht vergessen, daß die trigonometrischen Funktionen stets in Bogenmaß (= Radiant) "denken"...
Gruß Andreas |
AW: Probleme mit atan/atan2
Vielen Dank,
Jetzt habe ich noch ein Problem, ich möchte wissen, wie man dass, was arctan ausgibt, in Grad umrechnet. :( Kann mir jemand helfen? :cyclops: |
AW: Probleme mit atan/atan2
siehe hier ->
![]() .. oder ![]() Grüße Klaus |
AW: Probleme mit atan/atan2
Delphi-Quellcode:
Gruß
Function DegToRad(x: Extended): Extended;
Begin Result:= x*Pi/180; // Pi/180 = 0,0174532925199432 End; Function RadToDeg(x: Extended): Extended; Begin Result:= x/(Pi/180); // Pi/180 = 0,0174532925199432 End; Andreas |
AW: Probleme mit atan/atan2
Danke :)
kann mir noch jemand eine Funktion (oder etwass anderes) nennen, wie man die Zahl auf ganze Grad runden kann. Oder einfach allgemein eine Funktion zum Runden! Das wäre cool 8-) |
AW: Probleme mit atan/atan2
Hallo,
z.B. so function cnc_round(fzahl: Extended): Extended; begin result := round(fzahl * 10000) / 10000; end; Gruß |
AW: Probleme mit atan/atan2
Hallo Felix,
etwas professioneller geht es so:
Delphi-Quellcode:
oder
Function ArithRound(x: Extended): Int64;
Begin IF Frac(x) < 0.5 Then Result:= Floor(x) Else Result:= Ceil(x); End;{ArithRound} {--------------}
Delphi-Quellcode:
Gruß
Function ArithRound(x: Extended): Int64;
Begin Result:= Trunc(x + 0.5); End;{ArithRound} {--------------} Andreas |
AW: Probleme mit atan/atan2
Danke,
wenn wir gleich beim Thema sind, schneidet die Funktion FloatToStrF alle Kommastellen weg oder rundet diese genauso? Dazu habe ich auch noch eine Frage: Ich weiß, dass hinter der Funktion eine Klammer mit vier Parametern hingehört. Kann mir jemand sagen, welcher Parameter für was zuständig ist? Schon mal Danke :wink: ! |
AW: Probleme mit atan/atan2
Zitat:
![]() Die Funktion erlaubt es, die Zahl der Nachkommastellen zu spezifizieren, und auch, ob man das scientific format verwenden will oder fixed format. ![]() |
AW: Probleme mit atan/atan2
Hallo Felix,
die Online-Hilfe führt einen (wenigstens bei XE5 Pro) in die Irre: ms-help://embarcadero.rs_xe5/libraries/System.UnicodeString.FloatToStrF.html denn FloatToStrF befindet sich nicht in der Unit „System.UnicodeString.pas“ (die gibt’s ja gar nicht), sondern in System.SysUtils.pas Dort findest Du u.a.: function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string; // TFloatFormat = (ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency); FloatToStrF converts the floating-point value given by Value to its string representation. The Format parameter controls the format of the resulting string. The Precision parameter specifies the precision of the given value. It should be 7 or less for values of type Single, 15 or less for values of type Double, and 18 or less for values of type Extended. The meaning of the Digits parameter depends on the particular format selected. usw. usf. … Gruß Andreas |
AW: Probleme mit atan/atan2
Moin...:P
Zitat:
Delphi-Referenz: ![]() FloatToStrF aus DelphiReferenz: ![]() 8-) |
AW: Probleme mit atan/atan2
@haentschman
Hallo, Pflaumi hat Hilfe gebraucht, ich denke ich habe ihm etwas helfen können. Schnelle Hilfe ist doppelte Hilfe... Da zählt die "Bartlänge" nicht: für einen Neugeborenen sind bekanntlich alle Witze neu. Gruß Andreas |
AW: Probleme mit atan/atan2
Aber es ist nicht neu, dass man bei einer neue Frage auch einen neuen Thread aufmachen sollte. :wink:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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-2025 by Thomas Breitkreuz