Forum: Programmieren allgemein
by faux,
15. Feb 2005
Das ist eine gute Idee...
Danke...
Wie würde die lauten?
Wann ergibt der Cosinus eines Wertes null?
Forum: Programmieren allgemein
by faux,
15. Feb 2005
Hm:
Ich hab jetzt folgendes Herausgefunden:
es liegt am Pi...
Fragt mich nicht wieso, aber das dürfte wohl an der Reihenentwicklung von Tanges liegen...
Lässt man das Pi weg, gibts keine Probleme, aber sobald man das Pi reistellt, hängt das Programm an den Polstellen...
Vielleicht liegt das daran, dass der Cosinus von Pi -1 und der Sinus von Pi 0 sind...
Forum: Programmieren allgemein
by faux,
15. Feb 2005
Genau das meine ich, das mache ich nämlich und trotzdem tritt der Fehler auf:
for x := 0 to Image1.Width do
begin
if cos(x / Image1.Width * 4 * pi) <> 0 then
begin
y := round(tan(x / Image1.Width * 4 * pi));
LineTo(x, Image1.Height div 2 - y);
end;
end;
Forum: Programmieren allgemein
by faux,
15. Feb 2005
Hallo!
Ich hab die FOR - Schleife jetzt Schritt für Schritt nachgerechnet (*g*)...
Und bin auch mit meinem TR bei 61 auf eine Polstelle gestoßen...
Und siehe da: Bei X = 61 hängt das Programm....
Wieso ist das so?
Deswegen:
Formel:
tan(X / Image1.Width * 4 * Pi)
Forum: Programmieren allgemein
by faux,
15. Feb 2005
Hallo!
Also eine Division schließe ich mal aus, denn dann würde die Fehlermeldung ja "Division by Zero" lauten...
Zur Sicherheit hab ich das mal mit folgender Anweisung ausgeschlossen:
for x := 0 to Image1.Width do
if cos(x / Image1.Width * Frq.Value * pi) <> 0 then
begin
y := round(Amp.Value * tan(x / Image1.Width * Frq.Value * pi));
LineTo(x, Image1.Height div 2 - y);
Forum: Programmieren allgemein
by faux,
15. Feb 2005
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....
Forum: Programmieren allgemein
by faux,
15. Feb 2005
OK, das ist klar...
Da lag mein Denkfehler.
Danke.
Forum: Programmieren allgemein
by faux,
15. Feb 2005
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:
procedure TForm1.DrawTangens;
var
x, y: Integer;
begin
with Image1.Canvas do
begin