Лекція 8 Розглянемо процедури, що безпосередньо реалізовують заливку замкнутих зображень. Є цілий ряд процедур, що малюють графічні фігури І що



Скачати 26.57 Kb.
Дата конвертації05.03.2017
Розмір26.57 Kb.
ЛЕКЦІЯ 8

Розглянемо процедури, що безпосередньо реалізовують заливку замкнутих зображень. Є цілий ряд процедур, що малюють графічні фігури і що відразу їх заповнюють за заданим шаблоном





  1. Bar(x1,y1,x2,y3:integet) -

малює прямокутник, внутрішня частина якого залита за поточним шаблоном. Параметри (x1,y1) і (x2,y2) - координати верхнього лівого і правого нижнього кутів прямокутника.

SetFillStyle(4,10);

Bar(50,50,200,250);




  1. Bar3D(x1,y1,x2,y2:integer; D3:Word, Top:Boolean) -

малює паралелепіпед, лицьова сторона якого заливається за поточним шаблоном. Параметри (x1,y1) і (x2,y2) - координати верхнього лівого і правого нижнього кутів прямокутника, а глибина задається в пікселях параметром D3.

Параметр Top задає режим відображення верхньої площини. У

Const

TopOn=true; { наявність верхньої площини}



Topoff=false; { верхня площина выдсутня}


SetFillStyle(4,10);

Bar3D(50,50,200,250,20,TopOn);

3) Sector(x,y:integer, Startangle, Endangle, Xradius, Yradius: Word) -процедура працює з секторами кіл і еліпсів. Малювання сектора еліпса, який буде залитий кольором за поточним шаблоном. Параметри процедури мають той же сенс, що і в процедурах Arc і Ellipse. Для завдання кругового сектора треба задати Xradius=yradius.

Наприклад, промальовування сектора еліпса



SetFillStyle(4,10);

Sector(300,150,135,180,60,70);
4)Pieslice(x,y:integer; Startangle, Endangle,radius:word) -

процедура малює коло або сектор кола, площа якого заливається за поточним шаблоном заповнення.



Setfillstyle(14,1);

Pieslice(200,200,0,360,70);

5)Fillellipse(x,y:integer;XRadius,YRadius:Word) -

малює еліпс поточним кольором і заповнює його за встановленим шаблоном:


Setfillstyle(10,2);

Setcolor(3);

Fillellipse(300,300,60,70);
6)Fillpoly(Numpoints:word; Var Polypoints) -

заповнює складніші геометричні фігури, зокрема неправильної форми.Параметри такі ж як і в процедурі Drawpoly, але якщо координати 1-ої і N-ой крапок не однакові, то вони все одно будуть сполучені лінією і внутрішність фігури буде залита за встановленим шаблоном.


Приклад заливки 4-кутника зеленим кольором.
Program DemoFill;

Uses Crt,Graph;

Const

MAS:array[1..10] of integer=



(75,0,200,100,300,150,200,200,100,400,75,0);

Begin


Grd:=detect;

InitGraph(grd,grm,’’);

SetFillStyle(1,Green);

FillPole(5,MAS);

Readln;

CloseGraph;



End.
7) Floodfill (x,y:integer; Border:word) -

процедура заливає всю область навколо крапки (X,y), обмежену лініями кольору Border. Наприклад, якщо крапка (X,y) знаходиться усередині області, обмеженим колом, то вся область буде залита за шаблоном і кольором, встановленими процедурами Setfillstyle і Setfillpattern. Якщо ж крапка знаходитиметься поза цією областю, то залитим буде весь екран за винятком цієї області. Якщо область не замкнута суцільною лінією, то за шаблоном заповниться весь екран.


SetColor(4);

FloodFill(x1,y1,4);

FloodFill(x2,y2,4);
Приклад:

Program DemoFlood;

Uses Graph;

Var


Grd,Grm:integer;

Begin

Grd:=detect;

InitGraph(grd,grm,’’);

SetFillStyle(3,15);

Rectangler(60,50,400,200);

FloodFill(100,100,15);

Redln; CloseGraph;

End.


База даних захищена авторським правом ©lecture.in.ua 2016
звернутися до адміністрації

    Головна сторінка