Таблица 8.2. Шаблоны заливки в BGI-пакете
Номер шаблона |
Константа ТС |
Константа ТР |
Способ заполнения области |
||
0 |
EMPTY FILL |
EmptyFiil |
Заливается цветом фона |
||
1 |
S0LIQ_FILL |
SolidFill |
Заливается цветом col |
||
2 |
LINE_FILL |
Line Fill |
Штриховка горизонтальными линиями |
||
3 |
LT3LASH FILL |
LtSlashFill |
Тонкая штриховка под 45° |
||
4 | SLASH FILL | SlashFill | Толстая штриховка под 45° | ||
5 | BK£T.ASH "ILL | EkSlashFill | Толстая штриховка под 135° | ||
6 | LTBKSLASH_?1LL | LtBkSlashFill | ; Тонкая штриховка под 135° | ||
7 |
HATCH_FILL |
HatchFill |
Двойная штриховка, 0° и 90° |
||
8 |
XHATCH FILL |
XHatchFill |
Двойная штриховка, 45° и 135° |
||
9 |
INTERLEAVE FILL |
InterleaveFill |
Короткие чередующиеся штрихи |
||
10 |
WIDE_D0T_FILL |
WideDotFill |
Редкий точечный растр |
||
11 |
CL0SE D0T FILL |
CloseDotFill |
Густой точечный растр |
||
12 |
USER_FILL |
UserFill |
По шаблону пользователя |
||
Наиболее простой вариант подбора системного шаблона предлагает следующая программа, которая перебирает их в цикле, останавливаясь после вывода очередного образца.
Программа 8_08.с
/* Системные шаблоны заполнения фигур */
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
main() {
int k,gd=0,gm;
int col=14; //желтый цвет для единичных пикселов шаблона
initgraph(sgd,&gm,"");
for(k=0; k<12;k++)
{
cleardevice();
printf("\n номер шаблона=%3",k);
setfillstyle(k,14);
bar(300,100,400,200);
getch();
} Closegraph(); }
Если при выборе шаблона вы остановились на numpat = 12, то перед построением залитых фигур необходимо определить структуру нестандартного узора. В качестве параметра pattern в функции filipattern может выступать любой 8-байтовый массив:
ТС: char patl[] = {0xCC,0x33,0хСС,0x33,0хСС,0x33, 0хСС, 0x33};
setfillpattern(patl,4);
ТР: const
patl:FillPatternType=($CC,$33,$СС,$33,$СС,$33,$СС, $33);