Задания по программированию (М3)

Занятие 3. Графика в Турбо Паскаль

  1. Напишите программу построения графического изображения. Постарайтесь использовать все основные графические возможности Турбо Паскаль. Сюжет графического изображения определите по своему усмотрению.

  2. Постройте изображение на основе какого-либо нелинейного алгоритма (построение графика функции по точкам, рисование волейбольной сетки, шахматной доски, случайных геометрических объектов и т.п.). Посмотрите некоторые примеры подобных программ.

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

  4. Напишите программу, обеспечивающую управление с помощью клавиатуры положением графических объектов на экране компьютера (перемещение точки, изменение положения геометрических фигур и т.п.). Посмотрите некоторые примеры подобных программ.


 

Справочный материал.

ТР обладает достаточно разнообразными средствами для работы со стандартным VGA экраном (возможно также использование и и других типов видеоадаптеров).

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