PROGRAM PROBA;
USES GRAPH; VAR DRIVER, MODE: INTEGER; BEGIN DRIVER:= DETECT; INITGRAPH(DRIVER, MODE, 'C: \BP\BGI'); Перед выходом из программы графический режим нужно закрыть командой CLOSEGRAPH Рассмотрим несколько примеров. Задача 11.1 Построить семейство одинаковых кругов, центры которых расположены на синусоиде. В данной задаче самое главное - правильно построить синусоиду. Во-первых, для того чтобы определить координаты точки на синусоиде, нужно отбросить дробные части у полученных значений, т. к. координаты экрана только целые числа. Во-вторых, необходимо подобрать коэффициент, который растягивает синусоиду по оси Y. Если просто воспользоваться стандартной функцией SIN(X), то ее значение не превосходит единицы и при округлении мы получим прямую линию. В-третьих, следует выбрать шаг, с которым мы будем продвигаться по оси X. В-четвертых, ось симметрии этой синусоиды должна проходить в середине экрана. В результате всех этих рассуждений мы получим следующую формулу расчета: Y:= GETMAXY DIV 2+TRUNC(50* SIN(10*X)); PROGRAM PRG11_1; USES GRAPH, CRT; VAR DRIVER, MODE, X, Y: INTEGER; BEGIN DRIVER:= DETECT; INITGRAPH(DRIVER, MODE, 'C: \BP\BGI'); SETCOLOR(3); SETFILLSTYLE(1, 1); FLOODFILL(1, 4, 1); X:=- 5; Y:= GETMAXY DIV 2; SETCOLOR(16); REPEAT X:=X+10; Y:= GETMAXY DIV 2+TRUNC(50* SIN(10*X)); SETFILLSTYLE(1, 10);
|