Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Probleme mit atan/atan2 (https://www.delphipraxis.net/200758-probleme-mit-atan-atan2.html)

Pflaumi 22. Mai 2019 14:03

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!

Daniel 22. Mai 2019 14:42

AW: Probleme mit atan/atan2
 
Die Funktion müsste ArcTan() heißen.

Rollo62 22. Mai 2019 15:15

AW: Probleme mit atan/atan2
 
Richtig, und diese Unit bräuchte man dafür.

Delphi-Quellcode:
interface

uses
    System.Math
   ...
   ...
   ;

...

Andreas13 22. Mai 2019 17:26

AW: Probleme mit atan/atan2
 
Und nicht vergessen, daß die trigonometrischen Funktionen stets in Bogenmaß (= Radiant) "denken"...

Gruß
Andreas

Pflaumi 23. Mai 2019 14:56

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:

Klaus01 23. Mai 2019 14:59

AW: Probleme mit atan/atan2
 
siehe hier -> https://www.frustfrei-lernen.de/math...-gradmass.html

.. oder RadToDeg aus der Math Library nutzen.

Grüße
Klaus

Andreas13 23. Mai 2019 15:21

AW: Probleme mit atan/atan2
 
Delphi-Quellcode:
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;
Gruß
Andreas

Pflaumi 26. Mai 2019 13:59

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-)

Heuman 26. Mai 2019 14:12

AW: Probleme mit atan/atan2
 
Hallo,

z.B. so

function cnc_round(fzahl: Extended): Extended;

begin

result := round(fzahl * 10000) / 10000;

end;


Gruß

Andreas13 26. Mai 2019 16:43

AW: Probleme mit atan/atan2
 
Hallo Felix,
etwas professioneller geht es so:
Delphi-Quellcode:
Function ArithRound(x: Extended): Int64;
Begin
  IF Frac(x) < 0.5 Then
    Result:= Floor(x)
  Else
    Result:= Ceil(x);
End;{ArithRound}
{--------------}
oder
Delphi-Quellcode:
Function ArithRound(x: Extended): Int64;
Begin
  Result:= Trunc(x + 0.5);
End;{ArithRound}
{--------------}
Gruß
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr.
Seite 1 von 2  1 2      

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