Есть прога, по формуле вычисляет, принадлежит ли точка графику косинуса, и на основе вырезанных "горбов" графика косинуса (этой самой функции) рисует круги, ну или что то похожее на круги.
Нужно чтоб эти самые круги не вылазили за пределы границ
т.е все круги были цельными
смотрите рисунок:
вот код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,a,ident: integer;
x,y: integer;
w,r,t,ax,bx: real;
begin
Image1.Picture:=nil;
i := StrToInt(Edit1.Text);
j := StrToInt(Edit2.Text);
a := StrToInt(Edit3.Text);
ax := a * 0.1;
bx := ax + 0.1;
if (i mod 2=0) then r:=1 else r:=-1; // типа -1 в степени i
if (j mod 2=0) then t:=1 else t:=-1;
for x:= 0 to 600 do
for y := 0 to 600 do
begin
w:= abs(cos((i*pi*x/300)-(1+r)*pi/4)*cos((j*pi*y/300)-(1+t)*pi/4));
if (w>ax) and (w<bx) then image1.Canvas.Pixels[x, y]:=clRed;
end;
end;
формула.rar