Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

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



 

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-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.