
niestety po napisaniu większej częsci programu utknąłem.
oto co udało mi się zrobić:
- Kod: Zaznacz wszystko
program kwadrat_sierpinskiego;
uses Crt, Graph;
var driver,tryb : integer;
procedure kwadrat(xa,ya,xb,yb,xc,yc,xd,yd,kolor:integer);
var xs,ys:integer;
begin
setcolor(15);
line(xa,ya,xb,yb);
line(xb,yb,xc,yc);
line(xc,yc,xd,yd);
line(xd,yd,xa,ya);
xs:=(xa+xb+xc+xd) div 4;
ys:=(ya+yb+yc+yd) div 4;
setfillstyle(1,kolor);
floodfill(xs,ys,15);
end;
procedure sierpinski(xa,ya,xb,yb,xc,yc,xd,yd:integer;poziom:byte);
var xab,yab,xad,yad,xbc,ybc,xcd,ycd:integer;
begin
if(poziom>0)then
begin
xbc:=(xb+xc)div 2;
ybc:=(yb+yc)div 2;
xab:=(xa+xb)div 2;
yab:=(ya+yb)div 2;
xcd:=(xc+xd)div 2;
ycd:=(yc+yd)div 2;
xad:=(xd+xa)div 2;
yad:=(yd+ya)div 2;
kwadrat(xab,yab,xbc,ybc,xcd,ycd,xad,yad,15);
sierpinski(xa,ya,xab,yab,xcd,ycd,xad,yad,poziom-1);
sierpinski(xab,yab,xb,yb,xbc,ybc,xad,yad,poziom-1);
sierpinski(xab,yab,xbc,ybc,xc,yc,xad,yad,poziom-1);
sierpinski(xab,yab,xbc,ybc,xcd,ycd,xd,yd,poziom-1);
end
else
kwadrat(xa,ya,xb,yb,xc,yc,xd,yd,8);
end;
begin
Driver:=Detect; {autodetekcja karty}
InitGraph(tryb,driver,'');
kwadrat(200,700,700,700,700,200,200,200,5);
sierpinski(200,700,700,700,700,200,200,200,5);
Delay(2000);
CloseGraph;
end.
czy ktoś mógłby pokazać mi w którym miejscu mam błędy i co powinienem zmienić?
z góry dzięki
