Einzelnen Beitrag anzeigen

taker875

Registriert seit: 2. Okt 2008
25 Beiträge
 
#2

Re: Programm zum zeichnen von 2 Graphen

  Alt 16. Jan 2009, 21:30
um es nochmal genauer zu machen:

Zeichnen des 1. Graphen:
Delphi-Quellcode:
procedure zeichnenGraph;
var defi,defivorher : boolean;
    xvorher,yvorher : double;
begin
xvorher := (xb-x0)/(xEins-x0);
yvorher:=funktion(x,defivorher);
x := (xb-x0)/(xEins-x0);
y :=Funktion(x,defi);
yB := Round(y*(yEins-y0)+y0);
if y <> 0 then
if xB = 0
 then Form1.Bild.Canvas.MoveTo(xb,yb)
 else
  begin
  x := ((xb-1)-x0)/(xEins-x0);
  if defi and not ((y>10*index) or (y<-10*index) ) then
    begin
    Form1.Bild.Canvas.LineTo(xb,yb);
    end
   else
    begin
    xb := xb+1;
    x := (xb-x0)/(xEins-x0);
    y :=Funktion(x,defi);
    yB := Round(y*(yEins-y0)+y0);
    Form1.Bild.Canvas.MoveTo(xb,yb)
    end;
  end;
end;
Zeichnen des 2. Graphen:
Delphi-Quellcode:
procedure zeichnenGraph2;
var defi2 : boolean;
begin
x2 := (xb2-x0)/(xEins-x0);
y2 :=Funktion2(x2,defi2);
yB2 := Round(y2*(yEins-y0)+y0);
if y2 <> 0 then
if xB2 = 0
 then Form1.Bild.Canvas.MoveTo(xb2,yb2)
 else
  begin
  x2 := ((xb2-1)-x0)/(xEins-x0);
  if defi2 and not ((y2>10*index) or (y2<-10*index) ) then
    begin
    Form1.Bild.Canvas.LineTo(xb2,yb2);
    end
   else
    begin
    xb2 := xb2+1;
    x2 := (xb2-x0)/(xEins-x0);
    y2 :=Funktion(x2,defi2);
    yB2 := Round(y2*(yEins-y0)+y0);
    Form1.Bild.Canvas.MoveTo(xb,yb);

    end;
  end;
end;

Ich versteh einfach nicht, warum er die beiden verbindet

Edit:
Ok habe mir LineTo nochmal genau angeschaut und das Problem ist, dass er ja immer von der alten PenPos. eine Linie zieht und da ich 2 Graphen gleichzeitig zeichne auf einem image geht das nicht. Ok das habe ich. Wenn man es mit 2 verschiedenen Bildern versucht auf denen man zeichnet, dann geht das zwar flackert aber sehr, mit DoubleBuffered ist das auch nicht zu lösen, da dann der graph auf dem 2. bild , sprich der 2. graph nicht mehr sichtbar ist.

wenn mir da irgendwer nen tipp geben könnte wäre das echt super
  Mit Zitat antworten Zitat