Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Управление цветом в дисплеях системы rgb.

В дисплеях RGB палитра содержит 256 цветов из 256К (272144) возмож-

ных. Вы можете устанавливать любые цвета в палитре.

Вы можете изменить изначальную палитру RGB с помощью предиката

setrgbpalette. Все остальные предикаты изменения палитры (setpalette,

setallpalette, getpalette) не работают с драйверами IBM-8514 и VGA в 256К

цветном режиме. Для совместимости с другими графическими IBM адаптерами

драйвер BGI (IBM8514.BGI) определяет первые 16 цветов палитры IBM-8514 в

качестве начальных цветов EGA /VGA.

Предикаты

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

равляют цветом. Более полное описание можно найти в разделе "Стандартные

Предикаты" в "Справочном Руководстве по Турбо Прологу".

setbkcolor/1

setbkcolor устанавливает текущий цвет фона.

setbkcolor(Color) /*(i)*/

(integer)

getbkcolor/1

getbkcolor возвращает текущий цвет фона.

getbkcolor(BkColor) /*(o)*/

(integer)

setcolor/1

setcolor устанавливает текущий цвет рисования.

setcolor(Color) /*(i)*/

(integer)

getcolor/1

getcolor возвращает текущий цвет рисования.

getcolor(Color) /*(o)*/

(integer)

getmaxcolor/1

getmaxcolor возвращает максимальное значение цвета, доступное в дан-

ном графическом режиме.

getmaxcolor(MaxColor) /*(o)*/

(integer)

setpalette/2

setpalette изменяет один цвет палитры, задаваемый его аргументами.

setpalette(Index, ActualColor) /*(i,i)*/

(integer,integer)

setpalette изменяет цвет, стоящий в палитре под номером Index на

цвет со значением ActualColor. В CGA может меняться только цвет фона

(Index=0).

setallpalette/1

setallpalette заменяет всю палитру на данную.

setallpalette(PaletteList) /*(i)*/

(bgi_ilist) /*(= integer*)*/

PaletteList содержит список цветов новой палитры. Мы не рекомендуем

использовать этот предикат в системе CGA.

getpalette/1

getpalette возвращает текущую палитру.

getpalette(PaletteList) /*(o)*/

(bgi_ilist) /*(= integer*)*/

getdefaultpalette/1

getdefaultpalette возвращает первоначальную палитру.

getdefaultpalette(DefPaletteList) /*(o)*/

(bgi_ilist) /*(= integer*)*/

Первоначальная палитра это палитра, которая устанавливается при ини-

циализации драйвера с помощью initgraph.

getpalettesize/1

getpalettesize возвращает размер палитры.

getpalettesize(PaletteSize) /*(o)*/

(integer)

getpalettesize позволяет контролировать размер цветовой таблицы.

setrgbcolor/4

setrgbcolor заменяет один цвет палитры в дисплеях RGB-типа.

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

(integer,integer,integer,integer)

Аргумент Index определяет какой именно цвет палитры заменяется.

Index может принимать значения в пределах 0-255 для IBM-8514 и VGA в ре-

жиме 256К цветов. Аргументы RedComp, GreenComp и BlueComp определяют ком-

поненты цветов составляющих новый цвет палитры.

Вывод текста в графическом режиме.

В системе BGI кроме вывода графической информации существует возмож-

ность вывода текста. Для вывода текста можно использовать либо outtext,

либо outtextxy. Если включено удаление линий, выходящих за границы поля

вывода (clipping), то любой текст, выводимый в графическом режиме и выхо-

дящий за границы поля вывода, будет удаляться. Если же удаление не вклю-

чено, то текстовая строка, выводимая с помощью outtext или outtextxy, не

будет отображаться на экране совсем, если любая ее часть выходит за гра-

ницу экрана. Таким образом, вывод текста на экран ограничен границами эк-

рана.

Вы можете определить размер выводимой текстовой строки (в пикселах),

вызвав два предиката: один для определения высоты строки, другой для оп-

ределения ширины (смотрите описание settextstyle и setusercharsize).

Имеются различные шрифты для вывода текста, включая стандартный вст-

роенный в битовую карту памяти шрифт. Вы можете задавать направление вы-

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

текста относительно текущей позиции (смотрите описание settextstyle и

settextjustify).

Шрифты

Графическая система BGI содержит один встроенный в битовую карту па-

мяти шрифт и несколько сглаженных (stroked) шрифтов для вывода текста в

графическом режиме.

* Во встроенном шрифте (он находится в карте памяти - bit

map) каждый символ определяется матрицей пикселов размером

8*8.

* В сглаженных шрифтах каждый символ определяется набором

векторов, которые сообщают графической системе как

рисовать этот символ.

Преимущество использования сглаженных шрифтов становится очевидным,

когда вы начинаете выводить символы большого размера. Так как сглаженный

шрифт определяется векторами, символы остаются хорошо различимыми. Если

же пытаться вывести большие символы с помощью встроенного шрифта, то мат-

рица каждого символа умножается на масштабирующий множитель, а так как он

становится все больше при увеличении размеров символа, разрешение ухудша-

ется. для символов малого размера можно применять и встроенный шрифт, но

для больших символов надо применять сглаженные шрифты.

По умолчанию в графический пакет вставлен встроенный шрифт, так что

он всегда доступен при выполнении программы.

Сглаженные шрифты содержатся раздельно в файлах с расширением .CHR.

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

прямо к вашему исполняемому файлу .EXE.

Выбирается шрифт вызовом settextstyle. В файле GRAPDECL.PRO содер-

жатся символические имена различных шрифтов (смотрите таблицу 17.10).

Таблица 17.10 Константы, описывающие файлы со шрифтами.

----------------------------------------------------------------

ОбЪектный файл Файл Название Значение Описание

----------------------------------------------------------------

(нет) (нет) default_FONT 0 шрифт в карте памяти

TRIP_FON.OBJ TRIP.CHR triplex_FONT 1 трехдольный шрифт

LITT_FON.OBJ LITT.CHR small_FONT 2 малый шрифт

SANS_FON.OBJ SANS.CHR sansserif_FONT 3 пропорциональный шрифт

GOTH_FON.OBJ GOTH.CHR gothic_FONT 4 готический шрифт

----------------------------------------------------------------

Соседние файлы в папке Документация