ich würds dann so machen:
Delphi-Quellcode:
procedure Zeichne_Graph;
begin
for i := 0 to (2 * x0) do
begin
x:=(xb-x0)/(xEins-x0);
y:=x1*x*x*x*x+x2*x*x*x+x3*x*x+x4*x+x5;
yB:= Round(y*(YEins-y0)+y0);
if xB=0 then
Image1.canvas.MoveTo(xB,yB)
else
Image1.canvas.lineto(xB,yB);
xB:=xB+1;
end;
end;
PS. Bitte gewöhn dir doch gleich an Aussagekräftigere Variablennamen zu wählen, und ggf. an wichtigen Stellen auch Kommentare einzufügen. Das wird dir später deine Fehlersuche, sowie anderen das Lesen und Verstehen erheblich vereinfachen!
hier mal ein bissl besser Formatiert:
Delphi-Quellcode:
procedure Zeichne_Graph;
begin
for i := 0 to (2 * xKoordinatenursprung) do
begin
xWert := (xb - xKoordinatenursprung) / (xEins - xKoordinatenursprung);
yWert := x1*x*x*x*x+x2*x*x*x+x3*x*x+x4*x+x5;
yB := Round( yWert * (YEins - yKoordinatenursprung) + yKoordinatenursprung);
if xB = 0 then
Image1.canvas.MoveTo(xB,yB)
else
Image1.canvas.lineto(xB,yB);
inc(xB); //ist dasselbe wie xB := xB + 1; und viel schneller...
end;
end;
Bitte gib doch deinen Variablen xB , xEins, x1, yEins, yB, x2, x3, x4, x5 mal aussagekräftige Namen. Habs dir ja mal mit x0 uny y0 sowie x, und y vorgemacht.
EDIT: vielleicht überarbeitest du ja deinen Quellcode mal dahingehend, und stellst dann hier deinen komplette code mal rein, ich denke dann würde es auch einfacher fallen den Fehler zu finden...
Bis dahin!