Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Tangeskurve (https://www.delphipraxis.net/40412-tangeskurve.html)

faux 15. Feb 2005 14:11


Tangeskurve
 
Hallo!

Ich stell' mich anscheinend gerade etwas dumm an, aber ich versuche das jetzt schon seit über zwei Stunden und ich hab anscheinend einen Denkfehler:

Delphi-Quellcode:
procedure TForm1.DrawTangens;
var
  x, y: Integer;
begin
  with Image1.Canvas do
  begin
    MoveTo(0, Image1.Height div 2);
    for x := 0 to Image1.Width do
      if x mod 90 mod 2 = 0 then //Hier will ich sicherstellen, dass der Tangeswert ein gültiger ist
      begin
        y := round(Amp.Value * tan(x / Image1.Width * Frq.Value * pi)); //Amp und Frq sind zwei SpinEdits
        LineTo(x, Image1.Height div 2 - y); //Hier ziehe ich den Wert von der Nullinie der Funktion ab
      end;
  end;
end;
Zur Zeile 9:
cos ist null, bei 90, 270, 450, etc. und tan = sin / cos

Delphi-Quellcode:
function tan(const X: Extended): Extended;
begin
  result := sin(X) / cos(X)
end;
Das ganze funktioniert mal, wenn Frq.Val 4 ist. Verändere ich Frq aber, gibts wieder einen Fehler...
Warum aber? Wo liegt mein Fehler?

Danke für die Antwort.

Bart82 15. Feb 2005 14:40

Re: Tangeskurve
 
Achtung: Die Winkel der sin(x) und cos(x) werden in rad (0 bis 2*Pi) angegeben und nicht in Grad!

Carsten

Binärbaum 15. Feb 2005 14:51

Re: Tangeskurve
 
Um den Tangens eines Winkels im Gradmaß zu berechnen, muss man den Winkel erst ins Bogenmaß umrechnen. Das geht mit Delphi-Referenz durchsuchenDegToRad und Delphi-Referenz durchsuchenRadToDeg.

MfG
Binärbaum

faux 15. Feb 2005 17:01

Re: Tangeskurve
 
OK, das ist klar...
Da lag mein Denkfehler.

Danke.

faux 15. Feb 2005 17:10

Re: Tangeskurve
 
OK, ich komm nicht weiter...

Es kommt immer folgender Fehler:

Code:
Project Functioneer.exe raised exception class EInvalidOp with message 'Invalid floating point operation'.

Jasocul 15. Feb 2005 17:24

Re: Tangeskurve
 
Mit Debugger (IDE) laufen lassen. Dann bekommst du auch die Stelle, wo es passiert. Das hilft dir weiter. Falls nicht, zeig uns die Stelle.

faux 15. Feb 2005 17:30

Re: Tangeskurve
 
Das ist ja das Komische, der Debugger zeigt die STelle nicht an, er bricht nur ab....
Ich kapier den Delphi 2005 Debugger sowieso nicht ganz, da kann man zum Beispiel keine Lokalen Variablen wärend der Laufzeit abfragen...

EDIT: Ich habs mit dem Delphi 7 Debugger nochmals probiert und der bringt mich auch nicht an die Richtige Stelle....

idontwantaname 15. Feb 2005 17:38

Re: Tangeskurve
 
könnte irgendwann eine division durch 0 erfolgen ??

ibp 15. Feb 2005 17:40

Re: Tangeskurve
 
wie wäre es denn mit einzelschritten!

idontwantaname 15. Feb 2005 17:46

Re: Tangeskurve
 
wieso eigentlich:
Delphi-Quellcode:
for x := 0 to Image1.Width
wäre es nicht eher:
Delphi-Quellcode:
for x := 0 to Image1.Width - 1


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.
Seite 1 von 3  1 23      

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