![]() |
Extended in Integer
Hallöchen...
ich möchte einen Funktionsgraphen zeichnen und habe mich dazu einem vorhandenen Parser bedient. Es funktioniert soweit gut, ABER ich bekomme die x und y werte zum zeichnen im extended format. Ich braucher meiner Meinung nach Integerwerte um mit der Image.Komponente zu zeichnen. Hat jemand eine Idee wie ich mein Problem lösen könnte. Ich habe auch schon gesucht, aber richtig fündig wurde ich leider nicht. Mit freundlichen Grüßen checker |
Re: Extended in Integer
|
Re: Extended in Integer
Und neben den Rundungsfunktionen natürlich noch die lineare Transformation von deinem Koordinatensystem auf die Koordinaten des Bildschirms.
|
Re: Extended in Integer
Danke schon einmal für die Antworten.
Aber werder trunc, noch ceil oder floor wirken. Es kommt immer wieder die Fehlermeldung, dass die Variablen nicht übereinstimmmen würden. Das Problem ist, ich kann jetzt auch nicht den quelltext angeben, da dieser äußerst umfangreich ist. Hat jemand eine andere Idee, oder kann mir mal zeigen wie z.B. trunc angewendet wird. Vielleicht habe ich dabei einfach einen Fehler gemacht. MFG checker |
Re: Extended in Integer
und was ist mit "round"? Das müsste auf jeden fall gehen.
|
Re: Extended in Integer
@checker1992
Delphi-Quellcode:
Var x:double;
j:integer; j:=trunc(x); |
Re: Extended in Integer
Zitat:
|
Re: Extended in Integer
Liste der Anhänge anzeigen (Anzahl: 1)
sooo...
also das hier ist erstmal die Prozedur die Ausgeführt wird:
Delphi-Quellcode:
"termtoreal(term,x)" ist der angespochene Parser (
procedure TForm1.Button4Click(Sender: TObject);
var l,i:integer; var x,y,xe,xo,ye,yo,xn,yn: extended; var xwerte:array[1..20] of integer; var ywerte:array[1..20] of integer; term: string; begin xe:=160; xo:=150; ye:=140; yo:=150; term:=edit1.text; l:=length(term); i:=1; repeat if term[i]='x' then begin insert('*',term,i); inc(i); l:=length(term); end; inc(i); until i=l+1; l:=length(term); memo1.text := 'x f(x)'; memo1.Font.Name := 'Courier New'; x := -5; repeat y := termToReal(term,x); memo1.lines.Add(formatfloat(' 0.0 ;-0.0 ', x) + formatfloat('0.###',y)); xn:=x*(xe-xo)+xo; xwerte[x+6]:=xn; yn:=y*(ye-yo)+yo; ywerte[x+6]:=FloattoInt(yn); x := x + 1/2; until x > 5; //Fehler: "until x = 5.5", da extended nicht exakt end; ![]() Wenn ich es ausführe sieht es dann so aus: s. Anhang. Was kann ich jetzt machen, denn round ging auch irgendwie nicht. Oder muss ich bei round noch irgendwelche parameter angeben? Wie wird round angewendet? MFG checker |
Re: Extended in Integer
Deine Zuweisung stimmt nicht:
Delphi-Quellcode:
Das müßte heißen;
xwertw[x+6]:=xn;
Delphi-Quellcode:
Hoffe, das hilft dir weiter
xn:=xwertw[x+6];
LG Wolfgang |
Re: Extended in Integer
danke für die Antworten.
Die Zuweisung stimmt aber, da der Berechnet Wert von xn (Umrechnung von computer koordinatensystem in mahtematisches) in einem Array gespeichert wird. Dieser wird dann zum zeichnen benutzt. Aber Extended in Integer geht net so einfach oder? MFG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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