Заполнение областей экрана

Окраска областей осуществляется выводом на экран пикселей определенного цвета в область, ограниченную контурной линией.

Для этого может использоваться библиотечная функция

# include <graphics.h>

void far floadfill (int x, int y, int border),

которая заполняет текущим цветом область экрана, ограниченную непрерывной линией с цветом border, начиная с точки с координатами x, y. Если начальная точка лежит внутри области – заполняется внутренняя область, если вне области, то заполняется внешняя.

Заполнение начинается с начальной точки и продолжается во всех направлениях, пока не встретится пиксел с цветом border. Цвет должен отличаться от цвета заполнения. В противном случае будет заполнен весь экран.

Цвет и маска заполнения могут быть заданы с помощью функций

settfillpattern () и settfillstyle ()

Их вид следующий соответственно:

Void far settfillpattern (char mask, int color)

Переменная mask является указателем области памяти, задающей маску заполнения в виде массива, например char mask [ ] {

0X55, 0X55, 0X55, 0X55,

0X55, 0X55, 0X55, 0X55, }

Маска заполнения позволяет задать способ заполнения отдельных областей экрана. Она определяется восьмибайтовым шаблоном, рассматриваемом как битовая карта 8х8. Заполняемая область также разбивается на блоки (знакоместа) по 8х8 пикселов. Маска “накладывается” на каждое такое знакоместо по правилу: если соответствующий бит в маске заполнения равен 1, то пиксел остается неизменным. По умолчанию используется белый цвет и маска заполнения состоит из единицы.

Функция settfillstyle (int pattern, int color) выбирает один из предопределенных стилей заполнения. Возможные значения для pattern приведены в табл.94.

ТАБЛИЦА 94. ПРЕДОПРЕДЕЛЕННЫЕ МАСКИ В TURBO C.

Символическая константа Значение Описание стиля заполнения
EMPTY_FILL SOLID_FILL LINE_FILL LTSLASH_FILL SLASH_FILL BKSLACH_FILL LTBKSLASH_FILL HATCH_FILL XHATCH_FILL INTERLEAVE_FILL WIDE_DOT_FILL CLOSE_DOT_FILL USER_FILL   Заполнение цветом фона Заполнение текущим фоном Заполнение символами -, цвет – color Заполнение символами // нормальной толщины, цвет – color Заполнение символами // удвоенной толщины, цвет – color Заполнение символами \\ удвоенной толщины цвет – color Заполнение символами \\ нормальной толщины, цвет – color Заполнение вертикально – горизонтальной штриховкой тонкими линиями, цвет – color Заполнение штриховкой крест – накрест по диагонали “редкими” тонкими линиями, цвет – color Заполнение штриховкой крест – накрест по диагонали “частыми” тонкими линиями, цвет – color Заполнение “редкими” точками Заполнение “частыми” точками Заполнение по определенной пользователем маске заполнения, цвет – color

Стиль заполнения определяется также и функцией

Void far getfillsettings (struct fillsettingstype far * fillinfo)

При этом элементы структуры, на которую указывает fillinfo определяются значениями pattern и color. Шаблон этой структуры такой

Struct fillsettingstype

{ int pattern; /идентификатор маски заполнения/

int color; /цвет заполнения/

}

значения соответствующих масок приведены в таблице 94.

И, наконец, маска может определяться функцией

Void far getfillpattern (mask)

где mask – указатель области памяти, выделенной для маски. Маска может описываться в виде массива или предопределяться значениями, приведенными в таблице 94.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: