Координаты окна, страницы

 

SetViewPort (x1,y1,x2,y2,ClipOn) – процедура устанавливает прямоугольное окно на графическом экране, (x1,y1) – координаты левого верхнего, (x2,y2) – координаты правого нижнего угла окна. Координаты окна всегда задаются относительно левого верхнего угла экрана. ClipOn – логическое выражение, определяющее «отсечку» не умещающихся в окне элементов изображения. Если параметр ClipOn=True, элементы изображения, не умещающиеся в переделах окна, отсекаются, в противном случае границы окна игнорируются. Для управления этим параметром можно использовать следующие определенные в модуле константы:

Сonst

ClipOn=True; {Включить отсечку}

ClipOff=False; {Не включать отсечку}

 

GetViewSettings (ViewInfo) – процедура возвращает координаты и признак отсечки текущего графического окна. Параметр ViewInfo – переменная типа ViewPortType, который определен в модуле Graph следующим образом:

Type

ViewPortType=record

x1,y1,x2,y2 :Integer; {координаты окна}

Clip :Boolean; {признак отсечки}

end;

 

MoveTo (x,y) – процедура устанавливает новое положение указателя в позиции (x,y). Координаты определяются относительно левого верхнего угла окна или, если окно не установлено, экрана.

 

MoveRel (dx,dy) – процедура устанавливает новое положение указателя в относительных координатах (dx,dy). Здесь dx, dy – приращения новых координат указателя соответственно по горизонтали и вертикали. Приращения задаются относительно того положения, которое занимал указатель к моменту обращения к процедуре.

 

ClearDevice – процедура очищает графический экран. После обращения к процедуре указатель устанавливается в левый верхний угол экрана, а сам экран заполняется цветом фона, заданным процедурой SetBkColor.

 

ClearViewPort – процедура очищает графическое окно, а если окно не определено к этому моменту – весь экран. Указатель перемещается в левый верхний угол окна.

 

GetAspectRatio (x,y) – процедура возвращает значения x,y, позволяющие оценить соотношение сторон графического экрана в пикселах. Найденный с их помощью коэффициент может использоваться для построения правильных геометрических фигур.

Пример. Для построения квадрата со стороной n пиксел по вертикали, нужно использовать операторы:

GetAspectRatio (Xasp,Yasp);

Rectangle(x1,y1,x1+n*round(Yasp/Xasp),y1+n);

Если же n определяет длину квадрата по горизонтали, используется оператор

Rectangle(x1,y1,x1+n,y1+n*round(Xasp/Yasp));

 

SetAspeсtRatio (x,y) – процедура устанавливает масштабный коэффициент отношения сторон графического экрана. Здесь x,y – устанавливаемые соотношения сторон.

 

GetMaxX – функция возвращает максимальную координату экрана по горизонтали в текущем режиме работы.

 

GetMaxY – функция возвращает максимальную координату экрана по вертикали в текущем режиме работы.

 

GetX – функция возвращает текущую координату указатели по горизонтали.

 

GetY – функция возвращает текущую координату указатели по вертикали.

 

SetActivePage (номер_страницы) – процедура делает активной указанную страницу видеопамяти. Фактически процедура просто переадресует графический вывод в другую область видеопамяти. Активная страница может быть невидимой. Нумерация страниц начинается с нуля.

 

SetVisualPage (номер_страницы) – процедура делает видимой страницу с указанным номером. Нумерация страниц начинается с нуля.

Пример работы с видеостраницами. Программа сначала рисует квадрат в видимой странице и окружность – в невидимой. После нажатия Enter происходит смена видимых страниц.

Uses Graph,Crt;

Var

Driver, Mode:Integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

If Driver<>HercMono then

SetGraphMode(Mode-1);

SetActivePage(0);

{заполняем видимую страницу}

Rectangle(10,10,GetMaxX div 2, GetMaxY div 2);

OutTextXY(0,0,'Page 0. Press Enter...');

{заполняем невидимую страницу}

SetActivePage(1);

Circle(GetMaxX div 2, GetMaxY div 2, 100);

OutTextXY(0,0,'Page 1. Press Enter...');

{переключаемся между страницами}

Readln;

SetVisualPage(1);

ReadLn;

SetVisualPage(0);

ReadLn;

CloseGraph;

End.

 

С помощью оператора

If Driver<>HercMono then SetGraphMode(Mode-1);

устанавливается многостраничный режим работы на адаптерах EGA, MCGA, VGA. После инициализации графики с Driver=Detect устанавливается режим работы с максимально возможным номером; перечисленные адаптеры могут работать только с одной графической страницей, чтобы обеспечить работу с двумя страницами, следует уменьшить номер режима.

 








Дата добавления: 2015-04-15; просмотров: 608;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.