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