Hallo,
also, DegToRad() brauchst du nur, wenn du Grad-Angaben hast, und sie als Rad benötigst. Grundsätzlich arbeiten alle trogonometrischen Funktionen in Delphi ausnahmslos mit Rad (okay, außer du fängst mit OpenGL an...). Willst du z.B. den Sinus von 90° berechnen, brauchst du:
Delphi-Quelltext
In deiner Funktion sehe ich keine Probleme diesbezüglich. Allerdings könntest du die repeat-Schleife einfacher implementieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.FMClick(Sender: TObject); var u_n, f_n, u_t, f_t, M: integer; t: extended; u_fm: extended; begin u_n := 3; f_n := 1; u_t := 3; f_t := 10; M := 65; for t := 0 to 200 do begin u_fm := u_t * cos(2 * pi * f_t * t + M * sin(2 * pi * f_n * t)); series2.AddXY(t, u_fm); end; end; |
Natürlich könntest du die Argumente auch im Gradmaß angeben, und dann dein DegToRad() anwenden:
Delphi-Quelltext
1:
| u_fm := u_t * cos(DegToRad(360 * f_t * t + M * sin(DegToRad(360 * f_n * t)))); |
Wäre aber recht unsinnig...
Mit den Variablen sehe ich kein Problem. Außer dass für solch einfache Funktionen eigentlich Simple statt Extended angebracht wäre - spart Zeit (so ein paar Mikrosekunden halt).