Функция fillpoly осуществляет закраску многоугольника, заданного массивом значений х и у координат:

void far fillpoly (int numpoints, int far * points );

3.4.2. Работа с изображениями Библиотека поддерживает также возможность запоминания прямоугольного фрагмента изображения в обычной (оперативной) памяти и вывода его на экран. Это может использоваться для сохранения изображения в файл, создания мультипликации и т. п.

Объем памяти в байтах, требуемый для запоминания фрагмента изображения, можно получить при помощи функции imagesize: unsigned far imagesize (int x1, int y1, int x2, int y2); Для запоминания изображения служит процедура getimage: void far getimage (int x1, int y1, int x2, int y2, void far * image); При этом прямоугольный фрагмент, определяемый точками (хь yj) и (х2, у2), записывается в область памяти, задаваемую последним параметром - image. Для вывода изображения служит процедура putimage: void far putimage (int x, int у, void far * image, int op); Хранящееся в памяти изображение, которое задается параметром image, выводится на экран так, чтобы точка (х, у) была верхним левым углом изображения. Последний параметр определяет способ наложения выводимого изображения на уже имеющееся на экране (см. функцию setwritemode). Поскольку значение (цвет) каждого пиксела представлено фиксированным количеством бит, то в качестве возможных вариантов наложения выступают побитовые логические операции. Значения для параметра ор приведены ниже:

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

NOT_PUT - происходит вывод инверсного изображения;

ORPUT - используется побитовая операция ИЛИ;

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

AND_PUT - используется побитовая операция И.

Рассмотрим, каким образом действует параметр ор. На рис. 3.3 приведены возможные варианты наложения первого изображения (source) на второе (destination).

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

В этой программе происходит динамическое выделение под заданный фрагмент изображения на экране требуемого объема памяти. Этот фрагмент сохраняется в отведенной памяти. Далее сохраненное изображение выводится на новое место (в вершину левого верхнего угла - (х, у)), и отведенная под изображение память освобождается.


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