Краткое изложение теоретического материала
Для работы в графическом режиме в языке Турбо Паскаль реализованы следующие возможности:
1. Подключение к программе модуля графической библиотеки:
Uses Graph;
2. Инициализация графики:
g1:= detect; { автоопределение типа графического адаптера }
InitGraph (g1, g2, ’C:\tp70\BGI’); { инициализация графики }
Устанавливается графический режим с разрешением 640x480 точек.
Графика растровая (точечная). Точка - пиксел.
Переменные g1 и g2 имеют тип Integer.
3. Завершение графического режима:
CloseGraph;
4. Рисование точки с координатами (х, у) цветом с:
PutPixel (x, y, c):
5. Установить цвет фона с:
SetBkColor (c);
6. Установить цвет с для выводимого рисунка:
SetColor (c);
7. Рисование отрезка:
Line (x1, yl, x2, y2);
(xl, y1) и (х2, у2) - координаты концов отрезка.
8. Рисование окружности радиуса r с центром (х, у):
Circle (x, y, r);
9. Рисование прямоугольника со сторонами, параллельными сторонам экрана:
Rectangle (x1, у1, х2, у2);
(xl, y1) и (х2, у2) — координаты любой из диагоналей.
10. Закрашивание ограниченной области:
А) установка типа S и цвета С штриховки:
SetFillStyle (s, c);
где 0<= S <= 11 (0 - штриховка цветом фона, т.н. «пустая», 1 - сплошная заливка, прочие значения – различные типы штриховки).
Б) закрашивание области с границей цвета b:
FloodFill (x, y, b);
b - цвет границы (до этого цвета будет "разливаться" краска (штриховка)).
11. Рисование закрашенного прямоугольника:
SetFillStyle (s, c);
Ваг(х1, у1, х2, у2);.
(xl, yl) и (х2, у2) - координаты любой из диагоналей.
12. Рисование параллелепипеда с закрашенной передней гранью:
SetFillStyle (s, c);
Bar3D (xl, yl, x2, y2, d, Top);
(xl, yl) и (х2, у2) - координаты любой диагонали передней грани, d-глубина, Тор - логический параметр, указывающий, рисовать ли верхнюю грань параллелепипеда: True – рисовать, False - нет.
13. Рисование эллипса или его дуги:
Ellipse (x, y, a1, a2, xr, yr);
(х, у) - координаты центра,
a1 - начальный угол (в градусах),
а2 - конечный угол (в градусах),
хr - радиус по оси X,
уr - радиус по оси Y.
14. Рисование закрашенного сектора эллипса:
SetFillStyle (s, c);
Sector (х, у, а1, a2, xr, yr);
(х, у) - координаты центра,
a1 - начальный угол (в градусах),
а2 - конечный угол (в градусах),
хr - радиус по оси X,
уr - радиус по оси Y.
15. Выводтекста на графический экран:
A) Установка шрифта:
SetTextStyle (f, d, s);
f - номершрифта (0 - матричный шрифт 8x8),
d - направление вывода символов (0 - горизонтально, слева направо),
s - размерсимволов.
Б) выводтекста:
OutTextXY (x, y, s);
(х, у) - координаты левого верхнего угла выводимой строки,
s – выводимая текстовая строка.
Контрольные задания
10.1. Составить программу, которая построит произвольный пейзаж.
10.2. Составить программу, которая нарисует на экране мишень из n колец.
10.3. Составить программу, которая нарисует на экране пирамидку из n уменьшающихся прямоугольников.
10.4. Составить программу, которая нарисует на экране пирамидку из n увеличивающихся прямоугольников.
10.5. Составить программу, которая нарисует на экране многоэтажный дом.
10.6. Составить программу, изображающую лодку, плывущую по реке.
10.7. Составить программу, изображающую в центре экрана отрезок длины L, вращающийся вокруг одного из своих концов.
10.8. Составить программу, изображающую на экране солнышко с n лучиками длины l.
10.9. Составить программу, изображающую на экране снежинку с n лучиками длины l.
10.10. Составить программу построения графика функции:
a.) y = ax2;
b.) y = sin x;
c.) y = 1/x;
d.) y = tg x;
Построить и подписать также оси координат.
10.11. Дополнить программу, составленную для решения задачи 10.8, движением точки по построенному графику функции.
10.12. Составить программу построения графика функции, заданной параметрически:
a.) астроида:
x = a cos3 t,
y = a sin3 t, где t Î [0, 2p)
b.) кардиоида
x = a cos t (1 + cos t),
y = a sin t (1+ cos t), где a>0, t Î [0, 2p)
c.) спираль:
x = R cos t,
y = R sin t, где R=t/2, a<= t <= 2Np
d.) улитка Паскаля:
x = a cos2t + b cos t,
y = a cos t sin t + b sin t, где a>0, b>0, t Î [0, 2p)
e.) строфоида:
x = a (t 2 – 1)/(t 2 + 1),
y = at (t 2 – 1)/(t 2 + 1), где a>0, t Î (-¥, +¥)
f.) эпициклоида:
x = (a + b) cos t – a cos ((a + b)t/a),
y = (a + b) sin t – a sin ((a + b)t/a),
где a>0, b>0, t Î [0, 2p), b/a должно быть целым положительным числом
g.) циссоида:
x = a t 2 /(1 + t 2),
y = a t 3 /(1 + t 2), где a>0, t Î (-¥, ¥)
10.13. Составить программу, изображающую на экране модель солнечной системы: в центре должно располагаться солнце, вокруг которого с разными угловыми скоростями вращаются две – три планеты, вокруг одной из них должен обращаться спутник.