Обучающая программа Графика программированию в графическом режиме на языке 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>