Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Graphen aus der canvas wieder löschen
11. Okt 2011, 12:07
Delphi-Quellcode:
procedure TForm1.btn_ZeichneClick(Sender: TObject);
var
i,j:Integer;
x,y,a,b,c: Double;
begin
Initialize;
a:= StrToFloat(edtEingabe.Text);
b:= StrToFloat(edt_Bx.Text);
c:= StrToFloat(edt_C.Text);
i:=19;
Image1.Canvas.pen.Color := clBlue;
while i<660 do
begin
i:=i+1;
x:=(i-450)/50; //50, da Koordinatensystem in 50er Schritten erstellt ist
y:=a*sqr(x)+b*x+c;
j:=round((450-y*50)); //450 Grenze von X-Achse
if i= 20 then Image1.Canvas.MoveTo(i,j) else Image1.Canvas.LineTo(i,j)
end;
end;
procedure TForm1.Initialize;
var
i,j,k:Integer;
begin
with Image1.Canvas do
begin //X-Achse
Brush.Color := clWhite;
Fillrect(ClientRect);
MoveTo(1125,450); //Graph
LineTo(20,450);
for i:= -8 to 13 do
begin
Image1.Canvas.TextOut(450+50*i,455,IntToStr(i)); //Beschriftung
MoveTo(450+50*i,445); //Striche von Beschriftung
LineTo(450+50*i,455);
begin //Y-Achse
MoveTo(450,20); //Graph
LineTo(450,660);
for j := -8 to -1 do
begin
Image1.Canvas.TextOut(455,450+50*j,IntToStr(-j)); //Beschriftung
MoveTo(445,450+50*j); //Striche von Beschriftung
LineTo(455,450+50*j);
for k := 1 to 4 do
begin
Image1.Canvas.TextOut(455,450+50*k,IntToStr(-k)); //Beschriftung
MoveTo(445,450+50*k); //Striche von Beschriftung
LineTo(455,450+50*k);
end;
end;
end;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Initialize;
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|