logo
методические указания Паскаль

Графика

Цель работы: знакомство с графическими процедурами и функциями.

Пример: Пусть необходимо построить график циклоиды. Зададим ее матема-ти­ческое описание:

x = a t - b sin t, y = a - b cos t,

при b<a циклоида получается укороченной, при b>a - удлиненной, b = a да­ет обычную циклоиду.

При разработке программы необходимо перед выводом графической ин­формации на экран дисплея инициализировать графический режим с указа­нием пути к графическому драйверу, а в конце программы его следует закрыть.

Поскольку в графическом режиме работы дисплея верхняя левая точка экрана имеет координаты (0,0), сместим ось 0Х на середину экрана, а ось 0У - на 10 пикселей вправо. Для наглядности увеличим график путем использования масштабных коэффициентов по каждой оси координат. Кроме того, нужно помнить, что координаты точки в графическом режиме могут быть только целого типа.

С учетом вышесказанного программа построения циклоиды имеет вид

program graph17pr;

uses graph; {подключение модуля GRAPH}

var

a,b,t:integer; {a, b - переменные, определяющие a - тип драйвера и }

x,y,tt:real; {b - видеорежим }

begin

detectgraph(a,b); {автоопределение типа драйвера и видеорежима}

initgraph(a,b,'c:\progDOS\BP\BGI'); {инициализация графического режима}

setgraphmode(2); {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона – черный}

setcolor(4); {основной цвет рисования – красный}

moveTO(0,240); {смещает курсор для вычерчивания оси Х}

lineRel(625,0); {вычерчивание линии по приращению от указателя}

readln; {пауза до нажатия клавиши <Enter>}

setcolor(2); {основной цвет рисования – зеленый}

line(10,0,10,478); {рисует линию от точки (Х1,Х2) до т.(Х2,У2)}

readln; {пауза до нажатия <Enter>}

setcolor(5); {основной цвет рисования – фиолетовый}

readln; {пауза до нажатия клавиши <Enter>}

moveTO(10,240); {смещение курсора к точке с кординатой (0,240)}

tt:=0.0;

for t:=1 to 200 do {расчет и вычерчивание циклоиды}

begin

x:= 0.4*tt - 0.5*sin(tt);

y:= 0.4 - 0.5*cos(tt);

{линия} lineTO(trunc(100*x)+10,trunc(100*y)+240);

tt:=tt+Pi/32

end;

readln; {пауза до нажатия клавиши <Enter>}

SettextStyle(0,0,3); {установка шрифта(0..4), стиля, размера текста} OutTextXY(50,440,'график циклоиды'); {выводит текст от т.(50,440)}

readln; {пауза до нажатия клавиши <Enter>}

closegraph; {закрывает графический режим и восстанавливает текстовый} end.

Поскольку вычисляемые в программе координаты являются веществен­ными, то для их преобразования к целым значениям использована функция TRUNC().

При разработке графических программ необходимо следить, чтобы значения координат не выходили за пределы экрана. Для этого рекоменду­ется рассчитывать коэффициенты увеличения или уменьшения, а также па­раметры смещения изображения.

Задание 1 (программа 16_1)

Начертить графики функций F1(x) и F2(x) для результатов, получен­ных в программе 3_2.pas. На экран должен выводиться график с надписью выводимой функции.

Задание 2 (программа 16_2)

Напишите и отладьте программу для одной следующих задач.

1. Подготовить и отладить программу вычерчивания квадрата, вписанного в окружность. Запрограммировать изменение цветов окружности.

2. Организовать вывод на экран разноцветных цифр поочередно гори­зонтально и вертикально.

3. Отладить программу вычерчивания нескольких окружностей заданного радиуса в произ­вольном месте экрана разными цветами. Предусмотреть их мерцание.

4. Разработать программу изображения точки, движущейся по косинусоиде (y = =cos(x)).

5. Отладить программу рисования квадрата с диагоналями, пресекающимися в центре эк­рана. Создать иллюзию его уменьшения.

6. Начертить на экране картинку «круги на воде».

7. Изобразить движущийся на зрителя экран (прямоугольник).

8. Подготовить и отладить программу изображения правильного треугольника, вращающегося вокруг своей (любой) медианы.

9. Разработать программу вывода на экран компьютера пяти квадратов по углам и в середине экрана. Зап­рограммировать поочередный вывод их разными цветами.

10. Разными цветами в различных точках экрана выводить надпись «TurboPascal» с изменением размера шрифта.

11. Изобразить трубу, образованную разноцветными окружностями.

12. Организовать вывод на экран названия континентов разными цве­тами в различных точках экрана готическим и обычным шрифтами.

13. Изобразить спутник (точку), вращающийся вокруг планеты.

14. Изобразить НЛО, приземляющийся в различных точках экрана.

15. Организовать вывод на экран разноцветных русских букв разных размеров поочередно высвечивая или заполняя экран в хаотическом порядке.

16. Отладить программу вычерчивания графиков функций y = sin(x) и y = =sin(2x) разными цветами с разными осями координат.

17. Организовать вывод на экран формул химических элементов разными цве­тами в различных точках экрана.

18. Начертить на экране ряд геометрических фигур: квадрат, круг, треуголь-ник, прямоугольник, используя разные цвета.

19. Изобразить схематично на экране движущегося человечка.

20. Изобразить движение объекта по прямоугольной спирали.