Графика Турбо Паскаля - онлайн-чтение

 

 


Страница 1 из 3

Для использования графических возможностей Турбо Паскаля необходимо в блоке описания uses подключить графический модуль Graph. Модуль содержит набор графических функций и процедур, основные из которых рассмотрены ниже.


Графические процедуры

Arc (x,y: integer; St,En,R: word); {рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы. }



ClearDevice; {очистка экрана}

Circle (x,y: integer; R: word); {окружность радиуса R

cцентром в точке (x,y) }

CloseGraph; {закрытие графики}

InitGraph (gd,gm: integer; Path: string); {инициализация графики, где

gd - графический драйвер,

gm - графический режим,

Path - путь размещения файла

с расширением. bgi. }

Line (x1,y1,x2,y2: integer); {рисование линии, проходящей через две точки:

с координатами (x1,y1) и (x2,y2) }

LineRel (dx,dy: integer); {рисование линии: dx, dy - приращения

координат к координатам текущей

позиции курсора}

LineTo (x,y: integer); {рисование линии, проходящую через текущую

позицию курсора и точку с координатами (x,y) }

Moveto (x,y: integer); {задание координат текущей точки}

OutText (T: string); {вывод текста в текущую точку}

OutTextXY (x,y: integer; T: string); {вывод текста в точку с координатами х, у}

Rectangle (x1,y1,x2,y2: integer); {рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}

PutPixel (x,y: integer; c: word); {выводит точку с координатами (х, у) цветом с}



Графические функции

GetMaxX - определяет максимальный размер экрана по оси x.

GetMaxY - определяет максимальный размер экрана по оси y.

GetX - координата текущей позиции курсора по оси x.

GetY - координата текущей позиции курсора по оси y.

Машинные координаты.

Начало машинной системы координат, направление осей, а также максимальные значения координат монитора показаны на рисунке


На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):


xm=x0+x*Mx,

ym=y0-y*My,


где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,

x, y - физические координаты точки,

xm, ym - машинные координаты точки,

x0, y0 - машинные координаты начала физической системы координат.

Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

Этапы разработки программы сведены в таблицу.


Таблица

N

Этапы программирования

Выполнение

1.

Постановка задачи

Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

2.

Математическое описание

Изобразим вид экрана с указанием координат

требуемых линий


3.

Разработка структограммы

4.

Написание программы

Program P5;

Uses graph; {подключение граф. модуля}

Var gd,gm: integer;

Begin

gd: =detect; {определение граф. драйвера}

InitGraph (gd,gm,’ ‘); {инициализация

графики}

Line (0, round (GetMaxY/2), GetMaxX,

Round (GetMaxY/2)); {гориз. лин. }

Line (round (GetMaxX/2), 0,Round (GetMaxX/2), GetMaxY);

{вертик. лин. }

Readln; {пустой ввод}

CloseGraph; {закрытие графики}

End.

5.

Отладка и получение результатов

Выполнить самостоятельно


Пример. Написать программу построения графика функции y=x2 для x∈ [-1; 1].

Этапы разработки программы сведены в таблицу.

Таблица

N

Этапы программирования

Выполнение

1.

Постановка задачи

Построить график функции y=x2 для x∈ [-1; 1].

2.

Математическое описание

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

3.

Разработка структограммы

4.

Написание программы

Program P6;

Uses graph;

Var gd,gm: integer;

x,y: real;

x0,y0,xm,ym,Mx,My: integer;

begin

gd: =detect;

InitGraph (gd,gm,’ ‘);

Mx: =300; x0: =320; My: =440; y0: =460;

{выбраны для монитора 640×480 пикс. }

For xm: =20 to 620 do

Begin

x: = (xm-x0) /Mx;

y: =sqr (x);

ym: =round (y0-y*My);

PutPixel (xm,ym,1);

End;

Readln;

CloseGraph;

End.

5.

Отладка и получение результатов

Выполнить самостоятельно

 

Модуль Graph

ТР обладает достаточно разнообразными средствами для работы со стандартным 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

Предметы

Все предметы »

 

 

Актуальные Рефераты по программному обеспечению, программированию