ЛИСТИНГ ПРОГРАММЫ, Рекурсивная программа построения снежинки, Пример рекурсивной программы построения снежинки - Работа с языком Турбо Паскаль

Рекурсивная программа построения снежинки

Написать программу, строящую на экране изображение:

Изображение строится по следующему правилу: строится окружность с заданным радиусом r. Затем на диаметрально противоположных точках окружности ( x - r и x+ r)строится вновь окружность меньшего радиуса ( r=3 r/5). Для каждой меньшей окружности на диаметрально противоположных точках вновь строится окружность меньшего радиуса, и т. д., пока радиус не уменьшится до 10.

Program recurs;

Uses graph;

Var x, y,r, d,m:integer;

Procedure ris(x, y,r:integer);

Var i:integer;

Begin

If r<10 then exit;

Circle(x, y,r);

For i:=1 to 1000 do; { просто цикл задержки }

Ris(x+r, y,r*3 div 5);

Ris(x-r, y,r*3 div 5);

End ;

Begin {начало основной программы}

D:=detect;

Initgraph(d, m,"e:pgi");

X:=320;

Y:=240;

R:=120;

Ris(x, y,r);

Readln ;

End.

Пример рекурсивной программы построения снежинки

Как видно из рисунка, здесь опять повторяются одни и те же фрагменты. Построение выполняется так: на окружности заданного радиуса r берется 6 равноотстоящих точек (начиная от угла в 0 0, с шагом?/3), из каждой точки к центру окружности проводятся радиусы. Затем каждая из этих точек выступает центром новой, меньшей окружности с радиусом r=2 r/5. На каждой меньшей окружности вновь берется 6 равноотстоящих точек, из которых строятся радиусы к центру, и т. д., пока радиус не станет меньше или равен 1.

Program sneg;

Uses graph, crt;

Var

X, y,r, d,m:integer;

Procedure ris(x, y,r:integer);

Var

X1,y1,t:integer;

Begin

If r<=1 then begin putpixel(x, y,15);exit end;

For t:=0 to 6 do

Begin

X1:=x+trunc(r*cos(t*pi/3));

Y1:=y+trunc(r*sin(t*pi/3));

Line(x, y,x1,y1);

Ris(x1,y1,r*2 div 5);

Delay(500);

End;

End;

Begin

D:=detect;

Initgraph(d, m,"e:pgi");

X:=320;

Y:=240;

R:=80;

Ris(x, y,r);

Readln;

End.

Похожие статьи




ЛИСТИНГ ПРОГРАММЫ, Рекурсивная программа построения снежинки, Пример рекурсивной программы построения снежинки - Работа с языком Турбо Паскаль

Предыдущая | Следующая