logo search
TurboProlog / Документация / TOM_1

Предикаты

В этом разделе мы дадим краткое описание всех предикатов BGI, ис-

пользуемых для управления состоянием пикселов и образов. Более полное

описание находится в разделе "Стандартные Предикаты" в "Справочном Руко-

водстве по Турбо Прологу".

getpixel/3

getpixel возвращает цвет пиксела, расположенного в точке (X,Y).

getpixel(X, Y, Color) /*(i,i,o)*/

(integer, integer, integer)

putpixel/3

putpixel строит изображение пиксела в точке (X,Y) цветом PixelColor.

putpixel(X, Y, PixelColor) /*(i,i,i)*/

(integer, integer, integer)

getimage/5

getimage сохраняет битовый образ описанной области в памяти.

getimage(Left, Top, Right, Bottom, BitMap) /*(i,i,i,i,o)*/

(integer, integer, integer, integer, integer)

imagesize/5

imagesize выдает количество байтов, необходимых для записи прямоу-

гольной области экрана.

imagesize(Left, Top, Right, Bottom, Size) /*(i,i,i,i,o)*/

(integer, integer, integer, integer, integer)

putimage/4

putimage строит изображение предварительно сохраненного битового об-

раза на экране.

putimage(X, Y, BitMap, Operation) /*(i,i,i,i)*/

(integer, integer, integer, integer)

Файл GRAPDECL.PRO определяет постоянные, которые допустимы к исполь-

зованию в качестве аргумента Operation - инструкции, определяющей как

сохраненный образ будет накладываться на заданную область экрана.

Использование BGI с RGB графическими картами

Графические карты IBM-8514 и VGA с 256К цветоотображением являются

"RGB" (т.е. "красный - зеленый - голубой" - "Red - Green - Blue") графи-

ческими картами. Обе предоставляют возможность использования палитры в

256 цветов из списка 256К цветов. Цвета палитры определяются многочислен-

ными сочетаниями красного, зеленого и голубого цветов различной интенсив-

ности.

Карта IBM-8514 является графической картой высокого разрешения -

вплоть до 1024*768 пикселов. Имя файла ее BGI-драйвера - IBM8514.BGI.

BGI-логическая система автоматического распознавания не в состоянии долж-

ным образом идентифицировать IBM-8514-графическую карту. Она будет опоз-

навать ее как VGA при работе в режиме vgaHI. Для использования карты IBM

-8514, аргумент GrDriver предиката initgraph должен соответствовать зна-

чению величины ibm8514 (которое определяется в GRAPDECL.PRO), когда ваша

программа инициализирует BGI. Используя IBM-8514, вам не следует вызывать

detectgraph (или initgraph при GrDriver в положении detect), если не же-

лаете войти в режим, подобный режиму VGA низкого разрешения.

Режимами, поддерживаемыми IBM-8514-картой, являются ibm8514LO

(640*480 пикселов) и ibm8514HI (1024*768 пикселов). Оба режима задаются

константами в GRAPDECL.PRO.

IBM-8514 использует три 6-битовые величины для определения цветов.

каждый определенный цвет имеет по 6-битовой красной, зеленой и голубой

компоненте. Предикат setgrbpalette позволяет задать цвет для IBM-8514.

setrgbpalette(Index,RedComp,GreenComp,BlueComp) /*(i,i,i,i)*/

(integer, integer, integer, integer)

Аргумент Index определяет значение точки входа в палитру, которую

необходимо загрузить. Index является целой переменной со значением, лежа-

щим в диапазоне 0 - 225. Аргументы RedComp, GreenComp и BlueComp задают

компоненты цветов для данной точки входа в палитру. Лишь самый нижний

байт каждой из величин используется и в этом байте всего 6 значимых бит

загружается в палитру.