Координаты, окна, страницы
Многие графические процедуры и функции используют указатель текущей позиции на экране, который в отличие от текстового курсора невидим. Положение этого указателя, как и вообще любая координата на графическом экране, задается относительно левого верхнего угла, который, в свою очередь, имеет координаты 0.0. Таким образом, горизонтальная координата экрана увеличивается слева направо, а вертикальная – сверху вниз.
Функции GetMaxX и GetMaxY
Возвращают значения типа Word, содержащие максимальные координаты экрана в текущем режиме работы соответственно по горизонтали и вертикали. Например:
Uses Graph; var a,b: Integer; begin a: = Detect; InitGraph(a, b, ''); WriteLn(GetMaxX, GetMaxY:5); ReadLn; CloseGraph end.
Функции GetX и GetY
Возвращают значения типа Integer, содержащие текущие координаты указателя соответственно по горизонтали и вертикали. Координаты определяются относительно левого верхнего угла окна или, если окно не установлено, экрана.
Процедура SetViewPort
Устанавливает прямоугольное окно на графическом экране. Заголовок:
Procedure SetViewPort(XI,Y1,X2,Y2: Integer; ClipOn: Boolean);
Здесь:
- X1…Y2 – координаты левого верхнего (XI,Y1) и правого нижнего (X2,Y2) углов окна;
- ClipOn – выражение типа Boolean, определяющее "отсечку" не умещающихся в окне элементов изображения.
Координаты окна всегда задаются относительно левого верхнего угла экрана. Если параметр ClipOn имеет значение True, элементы изображения, не умещающиеся в пределах окна, отсекаются, в противном случае границы окна игнорируются. Для управления этим параметром можно использовать такие определенные в модуле константы:
const ClipOn = True; {Включить отсечку} ClipOff = False; {He включать отсечку}
Следующий пример иллюстрирует действие параметра ClipOn. Программа строит два прямоугольных окна с разными значениями параметра и выводит в них несколько окружностей. Для большей наглядности окна обводятся рамками (см. рис. 14.1).
Рис. 14.1. Отсечка изображения в окне