Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

? в TURBO-PASCAL предусмотрены операторы MoveTo,MoveRel,

GetX,GetY.

 

* procedure MoveTo(x,y:integer);

 

где x,y - координаты по горизонтали и вертикали соответственно

в отсчете от левого верхнего угла экрана.

 

* procedure MoveRel(Dx,Dy:integer);

 

Смещает курсор без рисования относительно его текущего поло-

жения. Dx, Dy - смещения курсора по координатам x и y.

 

* function GetX: word;

 

Определяет для курсора значение координаты X.

 

* function GetY: word;

 

Определяет для курсора значение координаты Y.

 

 

 

УПРАВЛЕНИЕ КУРСОРОМ И ПОЛЕМ РИСОВАНИЯ

 

При управлении положением курсора полезными оказываются также

справочные функции GetMaxX и GetMaxY, которые возвращают координаты

самой правой и самой нижней возможных графических позиций курсора,

соответственно, для текущего графического драйвера и режима.

 

* procedure ClearDevice;

 

Очищает экран от следов предшествовавшего рисования и восста-

навливает исходные параметры графики.

 

* procedure SetViewPort(X1,Y1,X2,Y2:word;Clip:boolean);

 

Устанавливает прямоугольное окно рисования с перемещением

курсора в левый верхний угол окна. Параметры процедуры имеют следу-

ющий смысл:(X1,Y1) и (X2,Y2) определяют соответствввенно координаты

левого верхнего и правого нижнего углов окна, а Clip принимает

значение true при необходимости отсечения изображения за границами

окна и false, когда этого делать не надо .

 

* procedure ClearViewPort;

 

Очищает текущее окно, заполняя его первым цветом текущей

цветовой палитры, и переводит курсор в левый верхний угол окна.

 

* procedure GetViewSettings(var ViewPortType);

 

Возвращает параметры активного окна просмотра в переменной

ViewPort. Тип ViewPortType описан в модуле Graph.

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

 

 

В данном разделе не рассматривается управление

цветом и стилем рисования и закрепляется за

фоном светло-серый, а за курсором синий цвет.

 

 

* procedure LineTo(X,Y:integer);

щ

Проводит отрезок прямой от текущего положения

курсора к заданной точке (X,Y).

 

 

* procedure LineRel(Dx,Dy:integer);

2

Рисует отрезок прямой по направлению к точке,

смещенной от текущего положения курсора на рас-

стояние Dx и Dy по осям OX и OY .

 

 

* procedure Line(X1,Y1,X2,Y2:integer);

3

Проводит прямую между точками (X1,Y1) и

(X2,Y2).

 

 

После выполнения этой и последующих процедур

курсор возвращается в предшествующее положение.

 

 

 

ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

 

 

* procedure Rectangle(X1,Y1,X2,Y2:integer);

4

Строит контуры прямоугольника с координатами

левого верхнего (X1,Y1) и нижнего правого

(X2,Y2) углов.

 

 

* procedure Bar(X1,Y1,X2,Y2:integer);

5

Строит прямоугольник, закрашенный текущим цветом

и орнаментом заполнения. (X1,Y1), (X2,Y2) -

координаты левого верхнего и правого нижнего

углов соответственно.

 

 

* procedure Bar3D(X1,Y1,X2,Y2:integer;

* Depth:word;Top:boolean)

6

Рисует аксонометрию закрашенного по фасаду

прямоугольного параллелепипеда.

(X1,Y1),(X2,Y2) - координаты левого верхнего и

правого нижнего углов

прямоугольного фасада.

Depth - ширина боковой грани (отсчитывается по

годизонтали.

Top - признак включения верхней грани.

 

 

 

ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

 

 

* procedure DrawPoly(NumPoints:word;

* var PolyPoints);

7Строит ломаную линию.

NumPoints - число вершин многоугольника

PolyPoints - переменная без типа, содержащая

NumPoints+1 пар координат вершин многоугольника

(первая и последняя вершины должны совпадать).

 

 

* procedure FillPoly(NumPoints:word;var PolyPoints);

8

Закрашивает многоугольник текущим цветом и

орнаментом. Параметры NumPoints и PolyPoints

именют тот же смысл и тип, что и одноимеынные

параметры процедуры DrawPoly.

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01С ПОМОЩЬЮ КАКИХ ПРОЦЕДУР МОЖНО НАИБОЛЕЕ РАЦИОНАЛЬНО ПОСТРОИТЬ

ОТРЕЗОК , ЕСЛИ ИЗВЕСТНЫ КООРДИНАТЫ КОНЦОВ?

 

1 LineTo(X,Y);

Line(X1,Y1,X2,Y2);

 

2 Line(X1,Y1,X2,Y2);

DrawPoly(NumPoint,PolyPoints);

 

3 LineTo(X,Y);

Line(X1,Y1,X2,Y2);

DrawPoly(NumPoint,Poly Points);

 

4 Line(X1,Y1,X2,Y2);

*

02КАК ПОСТРОИТЬ СТОЛБЧАТУЮ ДИАГРАММУ В ЗАРАНЕЕ СФОРМИРОВАННОЙ РАМКЕ?

1

1 Bar3D(X1,Y1,X2,Y2,Depth,true);

SetViewPort(X1,Y1,X2,Y2,false);

ClearViewPort;

Bar3D(X1,Y2,X2,Y3,Depth,false);

 

2 Bar3D(X1,Y1,X2,Y2,Depth,true);

SetViewPort(X1,Y1,X2,Y2,Depth,true);

ClearViewPort;

Bar3D(X1,Y1,X2,Y3,Depth,false);

 

3 Bar3D(X1,Y1,X2,Y2,Depth,true);

Bar3D(X1,Y2,X2,Y3,Depth,false);

 

4 Bar3D(X1,Y1,X2,Y2,Depth,true);

Bar3D(X1,Y2,X2,Y3,Depth,true);

*

03КА?/p>