Система координат
X |
Y |
(0,0) |
Отчет начинается от верхнего левого угла экрана, который имеет координаты (0,0). Значение Х (столбец) увеличивается в направлении слева на право, значение Y (строка) – в направлении сверху вниз. При этом экран представляется в виде прямоугольного массива адресуемых точек, а не символов, как в текстовом режиме. Для различных типов адаптеров и режимов значения количества точек по вертикали и горизонтали могут существенно различаться. Определение значений максимальных координат экрана в модуле Graph реализовано с помощью функций:
GetMaxX: integer; GetMaxY: integer; |
Если при адресации точек указываются значения координат, превышающие максимальные, операция игнорируется.
Управление текущим указателем
Чтобы построить изображение, необходимо обязательно указать начальную позицию. В текстовых режимах эту позицию определяет положение курсора, который размещается каждый раз за последним отображенным символом и указывает на местоположение следующего. В графических режимах видимого курсора нет, но есть невидимый текущий указатель CP (current pointer), выполняющий те же функции, что и курсор в текстовом режиме.
|
|
В графическом режиме для перемещения СР используются процедуры MoveTo и MoveRel.
Процедура
MoveTo (x,y:integer); |
перемещает текущий (курсор) указатель в точку с координатами (x,y).
Процедура
MoveRel(d x,dy:integer); |
перемещает СР на d x точек по горизонтали и на dy по вертикали относительно последнего положения текущего указателя. При задании положительных значений d x или dy значения будут увеличиваться, при задании отрицательных – уменьшаться.
Для определения текущего положения графического курсора используются функции
GetX: integer; GetY: integer; |
возвращающие значения текущих координат указателя (абсциссы и ординаты соответственно). Функции позицирования текущего указателя и определения его местонахождения работают корректно даже в случае задания значений координат, превышающих допустимые.