Собственно сам ворпос:Как нарисовать !!точками!! круг или дугу(с помощью функции PutPixel?) в Паскале?
Добавлено через 1 мин.
хотя-бы принцып!
uses graph;
function get_x(const x: single; const r: integer): single;
begin
get_x := r * sin(x / 180 * pi);
end;
function get_y(const y: single; const r: integer): single;
begin
get_y := r * cos(y / 180 * pi);
end;
procedure draw_circle(const radius, cx, cy, color: integer);
var
angle: single;
begin
angle := 0;
while (angle < 360) do begin
putpixel(round(cx + get_x(angle, radius)), round(cy - get_y(angle, radius)), color);
angle := angle + 1;
end;
end;
var
gd, gm: integer;
begin
gd := detect;
initgraph(gd, gm, '');
draw_circle(50, getmaxx div 2, getmaxy div 2, red);
draw_circle(30, getmaxx div 2 + 100, getmaxy div 2 - 100, white);
readln;
closegraph();
end.
program El;
uses crt,graph;
var gd, gm, X0, Y0: Integer;
X,Y,cX,cY,a,b,i,angl: Real;
begin
gd := detect;
initgraph(gd, gm, '');
X0:=320; Y0:=240; i:=0;
a:=50; b:=150; angl:=0;
repeat
while i<360 do
begin
i:=i+0.5;
cX:=a*cos(i);
cY:=b*sin(i);
X:=X0+cX*cos(angl)-cY*sin(angl);
Y:=Y0+cX*sin(angl)+cY*cos(angl);
PutPixel(Round(X), Round(Y), 15);
end;
Delay(200); i:=0;
ClearDevice; angl:=angl+0.01;
until keypressed;
closegraph;
end.
while i<360 do,
ClearDevice;и
angl:=angl+0.01;