Напишите программу построения графического изображения. Постарайтесь использовать все основные графические возможности Турбо Паскаль. Сюжет графического изображения определите по своему усмотрению.
Постройте изображение на основе какого-либо нелинейного алгоритма (построение графика функции по точкам, рисование волейбольной сетки, шахматной доски, случайных геометрических объектов и т.п.). Посмотрите некоторые примеры подобных программ.
Создайте анимированное изображение (летящий самолет, идущие часы, вращающееся велосипедное колесо и т.п.). Посмотрите некоторые примеры подобных программ.
Напишите программу, обеспечивающую управление с помощью клавиатуры положением графических объектов на экране компьютера (перемещение точки, изменение положения геометрических фигур и т.п.). Посмотрите некоторые примеры подобных программ.
VGA адаптер имеет разрешение 640х480 пиксел (точка (0,0) в левом верхнем углу экрана), 16 цветов.
Перед началом работы с графикой необходимо ее инициализировать, а по окончании - "закрыть". Все графические процедуры и функции находятся в модуле Graph, поэтому также необходимо его подключение.
Общая структура графической программы:
Uses crt, graph;
var Gd, Gm: Integer;
begin
Gd := Detect;
InitGraph(Gd, Gm, 'c:\bp\bgi');
...
{Здесь построение изображения}
...
ReadKey;
CloseGraph;
end.
Путь c:\bp\bgi указывает расположение файла egavga.bgi (драйвер графического адаптера). На разный компьютерах этот путь может быть разным. Если файл egavga.bgi поместить в каталог с программой, то путь можно не указывать.
Основные графические процедуры и функции:
Построение фигур
PutPixel(x,y,c)
- отображает на экране точку с координатами (x,y) и цветом c
Line(x1,y1,x2,y2)
- рисует линию с началом в точке (x1,y1) и концом - (x2,y2)
Rectangle(x1,y1,x2,y2)
- рисует контур прямоугольника с диагональю (x1,y1) - (x2,y2)
Bar(x1,y1,x2,y2)
- рисует закрашенный прямоугольник с диагональю (x1,y1) - (x2,y2)
Circle(x,y,r)
- рисует окружность с центром (x,y) и радиусом r
Ellipse(x,y,ba,ea,xr,yr)
- рисует дугу эллипса с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr, и начальным и конечным углом ba и ea
FillEllipse(x,y,xr,yr)
- рисует закрашенный эллипс с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr
Определение цветов и стилей
GetPixel(x,y)
- возвращает цвет пиксела с координатами (x,y)
SetColor(c)
- устанавливает цвет изображения (для линий)
SetFillStyle(p,c)
- устанавливает текущий стиль p и цвет c (для "закрашенных" фигур)
FloodFill(x,y,b)
- закрашивает замкнутую область с внутренней точкой (x,y) и цветом контура b
Работа с текстом
OutTextXY(x,y,st)
- выводит на экран строку st с позиции (x,y)
SetTextStyle(f,d,s)
- устанавливает шрифт f, его направление d и размер s
Сергеев А.Н. КАГИ ВГПУ. Сентябрь 2003