Реферат: Модуль Graph в программе Turbo Pascal

Угловые параметры очень неудобны для нашей системы координат - мы можем определить координаты начала и конца дуг окружности или эллипса не иначе, как только используя известные тригонометрические выражения. Но в подобных вычислениях нет необходимости, поскольку эти координаты все равно известны внутри процедур Arc , Ellips , Sector и PieSlice .

Извлечь концевые координаты дуг позволяет процедура

GetArcCoords (VAR ArcCoords : ArcCoordsType )

Тип ArcCoordsType объявлен в модуле Graph следующим образом:

TYPE

ArcCoordsType = RECORD

X, Y :Integer; {центр}
XStart, YStart :Integer; {начало}
XEnd, YEnd :Integer; {конец}

END ;

Рассматриваемая процедура возвращает результаты последнего вызова процедуры рисования дуги или сектора.

Построение прямоугольников и ломаных

Для построения прямоугольника достаточно вызвать процедуру Rectangle (Х1, Y 1, Х2, Y 2: Integer ), которая изобразит на экране прямоугольник с диагональю (X1, Y1) - (X2, Y2). Для рисования квадрата надо выбрать высоту прямоугольника так, чтобы она равнялась произведению ширины на коэффициент сжатия изображения.

Чтобы построить фигуры с большим количеством вершин (в том числе и незамкнутые), можно воспользоваться процедурой

DrawPoly (NumPoints: Word; VAR PolyPoints)

Она позволяет рисовать на экране дисплея любую ломаную, заданную набором координат некоторого множества точек. Это может быть как сложная геометрическая фигура, так и табличная математическая функция. Параметр NumPoints - это количество точек ломаной (заметим, что если необходимо нарисовать замкнутый многоугольник с N вершинами, то значение NumPoints должно быть на единицу больше числа N, а координата (N+1) –й точки должна быть такой же, как координата первой). Под бестиповым параметром PolyPoints понимается какая-либо переменная, состоящая из наборов двухкомпонентных записей. Поля каждой записи должны содержать координаты X-и Y очередной точки. В модуле Graph введен такой тип:

TYPE

PointType = RECORD

X , Y : Integer ; {координаты точки}

END ;

Обычно набор точек организуется как массив из записей типа PointType (и именно к такой структуре приводится значений параметра PolyPoint при работе процедуры DrawPoly). Пример построения графика функции с помощью процедуры DrawPoly приведен далее.

USES Graph; {подключен модуль Graph }
{$Iinitgraf.pas} {процедура инициализации}
CONST
Pi * 3.14151828; {константа Pi (замещает функцию)}
Pi2 = 2 * Pi; {различные производные от Pi...}
Pi001 = 0.01* Pi;
VAR
angle: Real;
sine_func: Array [1.201] of PointType ; { массивточек}
maxy, i: Integer;
BEGIN
Grlnit; {инициализация графики}
maxy := GetMaxY div 2; {середина экрана по оси Y}
angle := 0.0; {задание стартовых значений}
i := 0; { счетчик точек в sine_func}
repeat { циклзаполнения sine_func }
Inc ( i );
sine_func[i].x:= Round (100 * angle) + 10;
sine_func[i].y:= Round (100 * Sin (angle)) + maxy;
angle := angle + Pi001;
until angle > Pi2;
DrawPoly (i, sine_func) ; { рисованиеграфикасинуса}
ReadLn; {пауза до нажатия ввода}
CloseGraph {закрытие графики}
END.

С помощью DrawPoly можно вывести график части функции. Для этого достаточно указать при передаваемом массиве номер n первого рассматриваемого элемента (т.е. точки), а в первом параметре — количество рассматриваемых точек, начиная с n-й, например

DrawPoly (20, sine _ func [100]);

Такой вызов выведет ломаную линию по точкам с номерами 100, 101,..., 119.

При выводе количества точек, соиз?

К-во Просмотров: 325
Бесплатно скачать Реферат: Модуль Graph в программе Turbo Pascal