![]() |
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:
Zur Zeile 9:
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; cos ist null, bei 90, 270, 450, etc. und tan = sin / cos
Delphi-Quellcode:
Das ganze funktioniert mal, wenn Frq.Val 4 ist. Verändere ich Frq aber, gibts wieder einen Fehler...
function tan(const X: Extended): Extended;
begin result := sin(X) / cos(X) end; Warum aber? Wo liegt mein Fehler? Danke für die Antwort. |
Re: Tangeskurve
Achtung: Die Winkel der sin(x) und cos(x) werden in rad (0 bis 2*Pi) angegeben und nicht in Grad!
Carsten |
Re: Tangeskurve
|
Re: Tangeskurve
OK, das ist klar...
Da lag mein Denkfehler. Danke. |
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'.
|
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.
|
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.... |
Re: Tangeskurve
könnte irgendwann eine division durch 0 erfolgen ??
|
Re: Tangeskurve
wie wäre es denn mit einzelschritten!
|
Re: Tangeskurve
wieso eigentlich:
Delphi-Quellcode:
wäre es nicht eher:
for x := 0 to Image1.Width
Delphi-Quellcode:
for x := 0 to Image1.Width - 1
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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