Einzelnen Beitrag anzeigen

SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#5

Re: Funktion wird nicht gezeichnet

  Alt 30. Mär 2009, 15:22
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!
  Mit Zitat antworten Zitat