Построить узор по следующему принципу:
Известна точка центра окружности и радиус. Для следующих четырех окружностей координаты их центров должны находиться на серединах отрезков, соединяющих центр исходной окружности и вершины "мысленного" описанного около окружности квадрата. Радиус этих окружностей равен половине исходного радиуса. Процесс заканчивается, когда конечный радиус будет в 5 раз меньше начального.
Рисунок для наглядности прикладываю (задание номер 2).
Программу нужно написать в Pascal ABC (именно ABC, это важно).
Приложения:
![](https://st.uroker.com/files/586/586d661b7d24324a0519f2a87838df1f.jpg)
Ответы
Ответ дал:
0
uses
GraphABC;
var
radius, x, y: integer;
procedure DrawRing(x, y, radius, main_radius: integer);
var
r: integer;
begin
DrawCircle(x, y, radius);
r := radius div 2;
if r >= main_radius / 5 then begin
DrawRing(x + r, y + r, r, main_radius);
DrawRing(x - r, y + r, r, main_radius);
DrawRing(x + r, y - r, r, main_radius);
DrawRing(x - r, y - r, r, main_radius);
end;
end;
begin
Window.Maximize();
FloodFill(0, 0, clBlack);
Pen.Color := clAquamarine;
Pen.Width:=2;
x := Window.Center.X;
y := Window.Center.Y;
radius := random(Min(Window.Width, Window.Height) div 2);
DrawRing(x, y, radius, radius);
end.
GraphABC;
var
radius, x, y: integer;
procedure DrawRing(x, y, radius, main_radius: integer);
var
r: integer;
begin
DrawCircle(x, y, radius);
r := radius div 2;
if r >= main_radius / 5 then begin
DrawRing(x + r, y + r, r, main_radius);
DrawRing(x - r, y + r, r, main_radius);
DrawRing(x + r, y - r, r, main_radius);
DrawRing(x - r, y - r, r, main_radius);
end;
end;
begin
Window.Maximize();
FloodFill(0, 0, clBlack);
Pen.Color := clAquamarine;
Pen.Width:=2;
x := Window.Center.X;
y := Window.Center.Y;
radius := random(Min(Window.Width, Window.Height) div 2);
DrawRing(x, y, radius, radius);
end.
Вас заинтересует
1 год назад
1 год назад
1 год назад
1 год назад
6 лет назад
6 лет назад
7 лет назад