Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses GraphABC;
- var
- colors: array[1..10] of Color;
- procedure draw(n, x, y, r: integer);
- begin
- if n = 0 then exit; //если кончились уровни рекурсии - выходим из функции
- SetBrushColor(colors[n]); //берём цвет, соответствующий уровню
- FillCircle(x, y, r); //красим круг
- //вызываем эту же функции, но для радиуса в 3 раза меньше, смещённую и с уровнем рекурсии на 1 меньше
- draw(n - 1, x - 2 * (r div 3), y, r div 3); // левый подкруг
- draw(n - 1, x, y, r div 3); // центральный подкруг
- draw(n - 1, x + 2 * (r div 3), y, r div 3); // правый подкруг
- draw(n - 1, x, y - 2 * (r div 3), r div 3); // верхний подкруг
- draw(n - 1, x, y + 2 * (r div 3), r div 3); // нижний подкруг
- end;
- begin
- // заполняем массив цветов рандомными цветами
- for var i := 1 to 10 do
- colors[i] := rgb(Random(255), Random(255), Random(255));
- SetWindowSize(900, 900);
- CenterWindow;
- draw(9, 450, 450, 360); //draw(уровень рекурсии, x, y, радиус)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement