FillPoly (NumPoints: Word; VAR PolyPoints)
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Ее параметры имеют такое же назначение, как и в процедуре DrawPoly. Единственное отличие в том, что координаты первой и последней вершины многоугольника могут не совпадать. Однако все равно они будут соединены линией, и внутренность фигуры будет залита.

 

USES Graph; {подключен модуль Graph}
{$I initgraf.pas} {процедура инициализации}
CONST  
our_ figure : Array [1..4] of PointType =  
( x: 319; y: 40), {Задание координат концов }
( x: 398; y: 146), {отрезков, являющихся сторонами}
( x: 240; у: 146), {геометрической}
( x:400; у: 40)); {фигуры}
BEGIN  
Grlnit; { инициализация графики}
SetFiUStyle(InterleaveFill, Red); { задание шаблона }

{ рисование заданной фигуры}

FillPoly( SizeOf(our.figure) div SizeOf( PointType ), our_figure );

ReadLn;  
CloseGraph  
END.  

 

Функция SizeOf (our_figure) возвращает размер константы our_figure в байтах, a SizeOf (PointType) — размер памяти, занимаемый одним элементом типа PointType. И, наконец, универсальная процедура

FloodFilt (X, Y : Integer ; Border : Word )

Она заливает всю область вокруг точки (X,Y), ограниченную линиями цвета Border. Например, если точка (X,Y) находится внутри области, ограниченной окружностью, то вся область будет залита по шаблону и цветом, установленными процедурами SetFillPattern или SetFillStyle. Если же точка будет находиться вне этой области, то залитым будет весь экран за исключением этой области. Если область не замкнута сплошной линией или границами экрана, то по шаблону заполнится весь экран.

Опрос и установка цветов пера и фона

 

Различные адаптеры поддерживают разное количество цветов, выводимых одновременно на экран в графическом режиме. Но для всех BGI-драйверов оно ограничено диапазоном 0..15. Нумерация и названия цветов совпадают с теми, которые были приведены для текстовых цветов, а имена констант, обозначающих цвета (за исключением Blink), продублированы в модуле Graph.

Максимальный номер цвета, воспринимаемый данным адаптером в текущем графическом режиме, может быть получен при помощи функции

GetMaxColor : Word

На экране всегда различаются цвет фона и цвет пера. Все процедуры изображения фигур, если не содержат в себе явной установки цвета, рисуют эти фигуры цветом пера (как символы в текстовом режиме). Этот цвет устанавливается процедурой

SetColor (Color: Word )

Цвет фона — всегда един в поле экрана. Он может быть изменен процедурой

SetBkColor (Color: Word )

После использования этой процедуры цвет экрана сразу же меняется на заданный. Параметр Color не должен превышать текущее значение GetMaxColor. Цветом фона может быть любой из разрешенных цветов, в том числе и яркий. По умолчанию и при реинициализации графики цвет фона равен 0 (Black), а цвет пера равен значению функции GetMaxColor.

Всегда можно опросить текущие установки цвета.

Функция GetColor : Word возвращает значение текущего цвета пера, а функция GetBkColor : Word возвращает текущий цвет фона.

Управление палитрой

Палитра и ее анализ. Максимальный набор цветов, поддерживаемых одновременно BGI-драйвером, называется палитрой и может состоять из 16 цветов, пронумерованных от 0 до 15 (так будет, например, для графических адаптеров EGA, VGA).

Эти шестнадцать цветов используются по умолчанию в режимах 640x480 для VGA, 640x350, 640x200 и 320x200 для EGA как в текстовом, так и в графическом режимах.

Числа от 0 до 15, которые используются для обозначения цветов, определяют цветовые атрибуты или, как их еще называют, «программные» цвета. Каждому программному цвету присваивается «аппаратный» цвет из так называемой полной палитры. Например, для адаптера EGA, выводящего одновременно до 16 цветов, программные цвета выбираются из полной палитры в 64 цвета, имеющейся в этом адаптере. А в адаптере VGA аппаратная палитра содержит 256 цветов. Для управления соответствием между программными и аппаратными цветами в модуле Graph предусмотрен ряд процедур, охватывающих практически все возможные операции с палитрой.

Рассмотрим процедуры, с помощью которых можно получить системную информацию о ней. В модуле Graph определен тип для описания палитры:

CONST

MaxColors = 15; {максимальный программный номер цвета}

TYPE PaletteType = RECORD

Size  : Byte; {размер программной палитры}

Colors: Array [0..MaxColors] of Shortlnt;


END ;

Поле Size содержит количество цветов в палитре, а поле Colors содержит действующие цвета в первых Size элементах массива. Процедуры GetPalette и GetDefaultPalette возвращают в фактических параметрах значение типа PaletteType:

GetDefaultPalette (VAR Palette: PaletteType);


Дата: 2019-05-29, просмотров: 217.