SIN() Funktion - Grad in Rad und umgekehrt [gelöst]

Rund um die LCL und andere Komponenten
Antworten
MmVisual
Beiträge: 1609
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

SIN() Funktion - Grad in Rad und umgekehrt [gelöst]

Beitrag von MmVisual »

Hallo,

die Sin() Funktion liefert ja Rad zurück. Doch wenn ich diese umrechne in Grad, dann kommt irgendwie was anderes raus als wie diverse Online Rechner mir so ausrechnen.

Beispiel:
GradToRad(45.0), da sollte 0.78539816339745 rad raus kommen, tatsächlich errechnet Lazarus jedoch 0,706858347057704 rad aus.
Ein RadToGrad(GradToRad(45.0)) hin und her konvertieren innerhalb Lazarus funktioniert.

Was mache ich flasch?

Vielen Dank. VG Markus
Zuletzt geändert von MmVisual am Fr 17. Okt 2025, 09:20, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 301
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 4.3, FPC3.2.3
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: SIN() Funktion - Grad in Rad und umgekehrt

Beitrag von h-elsner »

Ich weiß nicht genau was RadToGrad() / GradToRad() macht (Gradient?) aber die Funktion, die du suchst ist RadToDeg() bzw DegToRad() (degree in deutsch Grad),

around5
Beiträge: 21
Registriert: Fr 16. Aug 2024, 08:14

Re: SIN() Funktion - Grad in Rad und umgekehrt

Beitrag von around5 »

Die Sin-Funktion liefert keine RAD zurück. Das Ergebnis ist zwischen -1 und +1.
RAD wird von Sin-Funktion als Parameter erwartet. Falls der Parameter in GRAD (zB. 180°) ist, muss dieser vor Verwendung der SIn-Funktion in RAD (Pi = 3,1415...) umgerechnet werden.

PS: Korrektur

* Degree: 0° ... 360°
* Rad: 0° ... 400°
* Cycle: 0 ... 2xPi
Zuletzt geändert von around5 am Fr 17. Okt 2025, 09:26, insgesamt 1-mal geändert.

MmVisual
Beiträge: 1609
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: SIN() Funktion - Grad in Rad und umgekehrt

Beitrag von MmVisual »

Stimmt, damit geht es. ... DegToRad()
Dankeschön.

PS: SIN COS und TAN Funktionen innerhalb Lazarus sind immer in rad, das steht zwar so nicht in der FPC Hilfe drin, aber wo anders im Netz.
EleLa - Elektronik Lagerverwaltung - www.elela.de

around5
Beiträge: 21
Registriert: Fr 16. Aug 2024, 08:14

Re: SIN() Funktion - Grad in Rad und umgekehrt [gelöst]

Beitrag von around5 »

Gerade getestet

Code: Alles auswählen

program Project1;
begin
  writeln('sin(100) : ', sin(100):8:7);
  writeln('sin(200) : ', sin(200):8:7);
  writeln;
  writeln('sin(pi/2): ', sin(pi/2):8:7);
  writeln('sin(pi)  : ', sin(pi):8:7);
end.
Ergebnis:

Code: Alles auswählen

sin(100) : -0.5063656
sin(200) : -0.8732973

sin(pi/2): 1.0000000
sin(pi)  : -0.0000000

Mathias
Beiträge: 7087
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SIN() Funktion - Grad in Rad und umgekehrt [gelöst]

Beitrag von Mathias »

* Rad: 0° ... 400°
Was ist dies komisches ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

around5
Beiträge: 21
Registriert: Fr 16. Aug 2024, 08:14

Re: SIN() Funktion - Grad in Rad und umgekehrt [gelöst]

Beitrag von around5 »

Habe das noch in meiner Schulzeit lernen müssen (ist schon laaaange her). Die Bezeichnungen (grad, rad, degree, ...) führen leider immer zur Verwirrung.

Hier ein Artikel in Wikipedia, der das gut Beschreibt: https://de.wikipedia.org/wiki/Gon
Und hier die Doku von Freepascal, das die Namensverwirrung komplett macht: https://www.freepascal.org/docs-html/rt ... ograd.html

Antworten