Практика программирования (Бейсик, Си, Паскаль)

         

Закрашивание и заполнение замкнутых областей - часть 2


Таблица 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&deg
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);




Содержание  Назад  Вперед