3.6. Понятие режима (способа) вывода При выводе изображения на экран обычно происходит замещение пиксела, ранее находившегося на этом месте, на новый. Можно, однако, установить такой режим, что в видеопамять будет записываться результат наложения ранее имевшегося значения на выводимое. Поскольку каждый пиксел представлен фиксированным количеством бит, то совершенно естественно, что в качестве такого наложения выступают побитовые операции. Для установки используемой операции служит процедура setwritemode:

void far setwritemode (int mode);

Параметр mode задает способ наложения и может принимать одно из значений:

COPYPUT- происходит простой вывод (замещение);

XOR__PUT - используется побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ.

Режим XOR_PUT удобен тем, что повторный вывод одного и того же изображения на то же место уничтожает результат первого вывода, восстанавливая изображение, которое до этого было на экране.

Замечание. Не все функции графической библиотеки поддерживают использование режимов вывода, например, функции закраски игнорируют установленный режим наложения (вывода). Кроме того, некоторые функции могут не совсем корректно работать в режиме XOR PUT.

3. Графические примитивы

3.7. Понятие окна (порта вывода)

. При желании пользователь может создать на экране окно - своего рода маленький экран со своей локальной системой координат. Для этого служит функция setviewport:

void far setviewport (int x1, int y1, int x2, int y2, int clip);

Эта функция устанавливает окно с глобальными координатами (хь yi) - (х2, у2). При этом локальная система координат вводится так, чтобы точке с координатами (О, 0) соответствовала точка с глобальными координатами (xi, yi). Это означает, что локальные координаты отличаются от глобальных координат лишь сдвигом на (Х|, у,). Все процедуры рисования (кроме setviewport) всегда работают с локальными координатами. Параметр clip определяет, нужно ли проводить отсечение изображения, не помещающегося внутрь окна, или нет.

Замечание. Отсечение ряда объектов проводится не совсем корректно; так, функция outtextxy производит отсечение не на уровне пикселов, а по символам.


⇐ Предыдущая| |Следующая ⇒