Entwickler-Ecke
Sonstiges (Delphi) - Real Zahl in Integer Zahl umwandeln
XZeranski - Sa 24.05.03 19:08
Titel: Real Zahl in Integer Zahl umwandeln
Hallo, bin in Delphi noch recht unerfahren und habe folgendes Problem:
Ich habe eine Variable x mit Real definiert.
Damit ich die Befehle MoveTo und LineTo benutzen kann brauche ich x jedoch als Integerzahl. Wie kann ich x so umwandeln das sie als Integerzahl erkannt wird?
Alibi - Sa 24.05.03 19:17
Round(Variable) -> Rundet
Trunc(Variable) -> Schneidet die Zahlen nach dem Komma einfach ab.
XZeranski - Sa 24.05.03 19:27
Hm, das hat geklappt. Aber irgendwie löst das mein Problem nicht so ganz.
Folgendes:
Ich will z.b. die Funktion x^2 zeichnen lassen. Dazu habe ich folgendes geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var x: real; i,f : integer; begin i := -50; while i < 50 do begin image1.canvas.moveto(i+175,-f+175); x := (i * i)/300; f := Trunc(x); image1.Canvas.LineTo(i+175,-f+175); i := i + 1; end; end; |
Damit ich einen besseren Maßstab bekomme, möchte ich den f - Wert aber halbieren. Das ist mir aber nicht möglich da er ja nur ganze Zahlen annimmt.
Alibi - Sa 24.05.03 19:31
Statt / einfach div nehmen.
XZeranski - Sa 24.05.03 19:53
Dann habe ich jetzt aber das Problem dass ich wenn ich z.b.
x := (i * i ) div 35
nehme, bei kleinen i - Werten keinen Punkt erhalte weil er die Werte einfach auf 0 rundet. Ich brauche aber eine durchgängige Kurve.
Edit: Vorher habe ich folgenden Befehl zur Darstellung der Kurve genommen:
Delphi-Quelltext
1:
| image1.Canvas.Pixels[round((x*35)+175),round((-f)+175)]:=clred |
Aber jetzt suche ich nach einem alternativen Weg weil die Darstellung mit dem oben genannten Weg einfach zu lange dauert, wenn ich z.b. x bei -100 starten lasse und mit einem Erhöhungsschritt von 0.001 (um eine ununterbrochene Linie zu erhalten) bis 100 laufen lasse, wartet man ewig.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!