You are on page 1of 2

procedure circulo(x_center, y_center, radio,r,g,b:Integer;Image1:timage); stdca

ll;
var
p, x, y : Integer; //declaracion de variables enteras
procedure plotcircle;
begin
image1.Canvas.Pixels [x_center + x, y_center + y]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center - x, y_center + y]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center + x, y_center - y]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center - x, y_center - y]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center + y, y_center + x]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center - y, y_center + x]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center + y, y_center - x]:= RGB(r,g,b);
image1.Canvas.Pixels [x_center - y, y_center - x]:= RGB(r,g,b);
end;
begin
x := 0;//x toma el valor de 0
y := radio; //y toma el valor de radio
p := 3 - 2 * radio;//p toma el valor de la operacion
While x < y do
begin
plotcircle;
If p < 0 Then
begin
p := p + 4 * x + 6;
end
Else
begin
p := p + 4 * (x - y) + 10;
y := y - 1;
End;
x := x + 1;
end;
If x = y Then plotcircle;
end;

4:
begin
grid1.Cells[2,clics]:=inttostr(x);
grid1.Cells[3,clics]:=inttostr(y);
clics:=clics+1;
contar:=contar+1;
grid1.RowCount:=clics;
if contar=2 then
begin
dx:= strtoint(grid1.Cells[2,clics-2])-strtoint(grid1.Cells[2,clics-1]);
dy:= strtoint(grid1.Cells[3,clics-2])-strtoint(grid1.Cells[3,clics-1]);
if abs(dx)>abs(dy) then
begin
circulo(strtoint(grid1.cells[2,clics-2]),strtoint(grid1.cells[3,clics-2]),abs(dx
),c1,c2,c3,image1);
cont:=0;
contar:=0;
end;

if abs(dy)>abs(dx) then
begin
circulo(strtoint(grid1.cells[2,clics-2]),strtoint(grid1.cells[3,clics-2]),abs(dy
),c1,c2,c3,image1);
end;
contar:=0;
end;
end;

You might also like