logo search
TurboProlog / Документация / TOM_1

Fillpoly/1

fillpoly рисует многоугольник точно также, как и drawpoly, а затем

заполняет его.

fillpoly(PolyPointsList) /*(i)*/

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

PolyPointsList имеет описание типа bgi_ilist = integer*. Подробнее

смотрите описание drawpoly.

Пример построения многоугольников.

/* Program CH17EX03.PRO */

include "GRAPDECL.PRO"

goal

initgraph(detect, 0, GraphDriver, GraphMode, ""),

rectangle(0, 0, 100, 100),

bar3d(100, 10, 200, 100, 5, 1),

bar(30, 30, 80, 80),

drawpoly([50, 100, 100, 100, 150, 150, 50, 100]),

fillpoly([50, 10, 90, 50, 50, 90, 10, 50]),

readchar(_),

closegraph.

Заполнение областей.

Вы можете заполнить (закрасить) нарисованные фигуры с помощью преди-

ката floodfill или сочетая рисование и заполнение, вызывать fillpoly и

pieslice. Вы можете переопределять шаблон заполнения с помощью

setfillstyle или определять свой собственный с помощью setfillpattern.

Информацию о текущих виде и цвете заполнения вы можете узнать вызы-

вая getfillsettings. О виде заполнения, заданном пользователем вы можете

узнать вызывая getfillpattern.

getfillsettings/2

getfillsettings возвращает информацию о текущих шаблоне и цвете за-

полнения.

getfillsettings(FillPattern, FillColor) /*(o,o)*/

(integer, integer)

setfillsettings/2

setfillsettings устанавливает заданные шаблон и цвет заполнения.

setfillsettings(FillPattern, FillColor) /*(o,o)*/

(integer, integer)

Описания констант, определенные в GRAPDECL.PRO, дают имена для шаб-

лонов заполнения области, включая один дополнительный шаблон, определяе-

мый пользователем.

Таблица 17.6 Виды заполнения областей

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

Название Значение Описание

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

empty_FILL 0 Заполнение фоновым цветом

solid_FILL 1 Сплошное закрашивание

line_FILL 2 Заполнение линиями ------

ltslash_FILL 3 Заполнение ////

slash_FILL 4 Заполнение ////, толстые линии

bkslash_FILL 5 Заполнение \\\\, толстые линии

ltbkslash_FILL 6 Заполнение \\\\

hatch_FILL 7 Заполнение разреженной решеткой

xhatch_FILL 8 Заполнение плотной решеткой

interleave_FILL 9 Заполнение промежуточными линиями

widedot_FILL 10 Заполнение разреженным штрихом

closedot_FILL 11 Заполнение плотным штрихом

user_FILL 12 Заполнение, определяемое

пользователем

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

Все виды заполнения кроме empty_FILL происходят текущим цветом за-

полнения FillColor. Вид empty_FILL использует текущий цвет фона.

user_FILL можно получить, вызвав getfillsettings, когда вы используете

setfillpattern для определения своего вида заполнения.