PROGRAM PRG11_7;
USES GRAPH, CRT; VAR DRIVER, MODE, X, Y, I, T: INTEGER; BEGIN DRIVER:= DETECT; INITGRAPH(DRIVER, MODE, 'С: \BP\BGI'); SETCOLOR(3); SETFILLSTYLE(1, 1); FLOODFILL(1, 4, 1); T:= -5; SETCOLOR{16); FOR I:= 1 TO 100 DO BEGIN T:= T+5; X:= GETMAXX DIV 2 -TRUNC(150*COS(10*T)); Y:= GETMAXY DIV 2+TRUNC(150* SIN(10*T)); SETFILLSTYLE(1, 10); FILLELLIPSE(X, Y, 20, 20); DELAY(100); END; REPEAT UNTIL KEYPRESSED; CLOSEGRAPH; END. Для решения задачи: - формируем тело программы и описываем переменные; - инициируем модуль GRAPH; - устанавливаем начальное значения угла поворота, цвет заливки кругов и цвет фона; - организуем цикл, в котором располагаем центры кругов по большой окружности, вычисляя их координаты с помощью уравнения окружности; - фиксируем рисунок до тех пор, пока не будет нажата любая клавиша. Переменные: X, Y - координаты центра очередного маленького круга; I - переменная цикла; Т - угол поворота; DRIVER - тип графического драйвера; MODE - режим работы графического адаптера. Задача 11.8 Построить семейство одинаковых окружностей, центры которых лежат на расходящейся спирали. Для решения этой задачи необходимо воспользоваться уравнением окружности: где X, Y - координаты точки; Х0, Y0 - координаты центра вращения спирали; U - угол вращения; R - увеличивающийся радиус. Координаты точки должны представлять собой целые положительные числа, поэтому с помощью функции TRUNC отбрасываем дробные части. В зависимости от того, куда в формулу подставлен радиус, спираль получается квадратная, как в программе PRG11_8A, либо круглая, как в PRG11_8B.
|