unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure szakaszrajz1(Sender: TObject); procedure korrajz1(Sender: TObject); procedure korfolytvonallal1(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.szakaszrajz1(Sender: TObject); const x1=0; x2=600; y1=0; y2=800; var sz,x,y:integer; begin {Rajzolás: SZ:=(Y2-Y1)/(X2-X1) [X1=X2 esetén] Ciklus X=X1-től X2-ig Y:=(X-X1)*SZ+Y1 Rajzol(X,Y) Ciklus vége Eljárás vége.} {if x1=x2 then }sz:=round((Y2-Y1)/(X2-X1)); for x:=x1 to x2 do begin Y:=(X-X1)*SZ+Y1; canvas.pixels[X,Y]:=clred; end; end; procedure TForm1.korrajz1(Sender: TObject); const r=120; c=300; var x,y:integer; sv1,sv2,sv:integer; begin {Rajzolás: Ciklus X=0-tól R-ig Y:=gyök(R*R-X*X) Rajzol(X,Y): Rajzol(X,-Y) Rajzol(-X,Y): Rajzol(-X,-Y) Ciklus vége Eljárás vége.} for x:=0 to R do begin sv1:=r*r; sv2:=x*x; sv:=sv1-sv2; y:=round(sqrt(sv)); canvas.pixels[x+c,y+c]:=clred; canvas.pixels[x+c,-y+c]:=clblue; canvas.pixels[-x+c,y+c]:=clgreen; canvas.pixels[-x+c,-y+c]:=clyellow; end; end; procedure TForm1.korfolytvonallal1(Sender: TObject); var x,y:integer; rr:longint; svx2,sv2,sv:integer; const c=300; r=220; diff=216; {hibahatar: 2 szazalek} {ha ennel jobban elterunk, akkor teglalapot kapunk} begin {Rajzolás: X:=0: Y:=R: RR:=R*R Ciklus amíg Y=0 Rajzol(X,Y): Rajzol(X,-Y): Rajzol(-X,Y): Rajzol(-X,-Y) Ha (X+1)*(X+1)+Y*Y=RR akkor X:=X+1 különben Y:=Y-1 Ha (X+1)*(X+1)+Y*YRR akkor X:=X+1 [különben le] Elágazások vége Ciklus vége Eljárás vége.} x:=0; y:=r; rr:=r*r; while not(y=0) do begin canvas.pixels[x+c,y+c]:=clred; canvas.pixels[x+c,-y+c]:=clblue; canvas.pixels[-x+c,y+c]:=clgreen; canvas.pixels[-x+c,-y+c]:=clyellow; svx2:=((x+1)*(x+1)); if abs((svx2+y*y)-rr)