Witam. Mam za zadanie w Pascalu zrobi program, który wyrysuje n=1..20 okręgów o losowych parametrach. Promienie z przdziału [10,200], okręgi mają się mieścić na ekranie i każdy z okręgów ma przecinać co najmniej jeden inny okrąg.
Na razie mam coś takiego:
program prog;
uses Crt, Graph;
const Czas=2000;
var i, n, x, y, r, r1, x1, y1, sqrt, Ster, Tryb, Xmax, Ymax : Integer;
procedure Inicjuj;
begin
Ster:=0;
InitGraph(Ster,Tryb,'');
Xmax:=GetMaxX; Ymax:=GetMaxY;
end;
function Okregi(n : Byte) : Integer;
begin
Randomize;
r1:=0; x1:=random(Xmax); y1:=random(Ymax);
for i:=0 to n-1 do
begin
repeat
r:=random(190)+10; // Okręgi z przedziału [10;200]
x:=random(Xmax);
y:=random(Ymax);
until (r<x) and (r<y) and (r<(Ymax-y)) and (r<(Xmax-x)); // Warunek Zmieszczenia się okręgów na ekranie
Circle(x,y,r);
x1:=x; y1:=y;
r1:=r;
end;
end;
begin
Inicjuj;
Okregi(10); Delay(Czas);
CloseGraph;
end.
Okręgi się mieszczą i są promienie dobre tylko z tym przecięciem jest najgorzej...