- Home
- No categories
SUBPROGRAME ORIENTATE SPRE POLIGOANE ŞI HAŞURĂRI
7.1 Proceduri şi funcţii
Rectangle
Procedura rectangle desenează un dreptunghi şi este definită astfelŞ
Procedure rectangle (x1, y1, x2, y2:integer);
X1 şi Y1 reprezintă coordonatele colţului stânga sus ale dreptunghiului.
X2 şi Y2 reprezintă coordonatele colţului dreapta jos ale dreptunghiului.
Desenarea se face cu stilul şi culoarea actuală.
Bar
Procedura Bar desenează un dreptunghi şi îl haşurează cumodelul şi culoarea satabilite cu procedura SetFillPattern sau SetFillStzle. Procedura este definită astfel:
Procedure Bar(x1,y1,x2,y1:integer);
X1 şi Y1 reprezintă coordonatele colţului stânga sus ale dreptunghiului.
X2 şi Y2 reprezintă coordonatele colţului dreapta jos ale dreptunghiului.
Bar3d
Procedura Bar3d desenează un paraşeşipiped dreptunghic şi îl haşurează cu modelul şi culoarea actuală. Procedura este definită astfel:
Procedura Bar3d (x1,y1,x2,y2:integer; ad:word; top:boolean);
X1 şi Y1 reprezintă coordonatele colţului stânga sus al corpului .
X2 şi Y2 reprezintă coordonatele colţului dreapta jos al corpului.
DrawPolv
Procedura DrawPolv desenează olinie poligonală şi este definită astfel:
Procedure DrawPolv (nrpct:word; var puncte );
Nrpct reprezintă numărul vârfurilor, iar variabila puncte este untabel ale carui elemente sunt de tip predefinit PoinzType care reprezintă coordonatele (x,y) ale vârfurilor. Tipul PointType este definit astfel:
Type PoinType= record
x,y:integer;
End;
În cazul în care se doreşte obţinerea unui poligon închis de n vârfuri, variabila puncte trebuie să fie un tablou de n+1 elemente astfel încât coordonatele primului punct şi coordonatele ultimului punct să coincidă.
FillPolv
Procedura FillPolv desenează şi haşurează un poligon şi este defintă astfel:
Procedure FillPolv(nrpct:word; var puncte);
Nrpct reprezintă numărul vârfurilor, iar variabila puncte este un tabel ale cărui elemente sunt de tip predefinit Pointtypeb, care reprezintăcooronatele (x,y) ale vârfurilor. Conturulpoligonului este formt din linii ale căror stil este determinat de procedura SetFillPattern sau SetFillStyl.
FloodFill
Procedura FloodFill haşurează cu modelul actual o zonă închisă şi este definită astfel:
Procedure FloodFill(x,y:integer;c:word);
x,y reprezintă coordonatele unui punct interior zonei închise, iar c reprezintă culoarea de haşurare, având valori de la 0 până la valoarea returnată de funcţia GetmaxColor.
SetFillStyle
Procedura SetFillStyle fixează modelul de haşurare utilizat şi culoarea de haşurare. Procedura este definită astfel:
Procedure SetFillStyle(m:word;c:word);
m defineşte modul de haşurare, iar c defineşte culoarea de haşurare.
Pentru definirea modului de haşurare se pot utiliza următoarele constante predefinite:
Const
EmptyFill=0;
SolidFill=1;
Linefill=2;
LtSlashFill=3;
SlashSill=4;
BkSlashFill=5;
LtBkSlashFill=6;
HatchFill=7;
XhatchFill=8;
InterLeaveFill=9;
WideDotFill=10;
CloseDotFill=11;
UserFill=12;
Haşurarea poate fi realizată pentru poligon, dreptunghi, paralelipiped, sector de cerc, elipsa.
GetFillSettings
Procedura GetFillSettings permite utilizatorului să obţină informaţii despre modelul actual de haşurare şi de culoare, informaţii care au fost fixate anterior cu procedura SerFillStyle sau SetFillPattern.
Procedura este definită astfel:
Procedure GetFillSetting (var infohas:FillSettingsTyipe);
Infohas este de tip predefinit FillSettingstype şi va conţine informaţii referitoare la haşurare. Tipul FillSettingsType este defint astfel:
Type FillSettingstype=record
Pattern:word;
Color:word;
End;
SetFillPatten
Procedura SetFillPattern oferă utilizatorului posibilitatea de a defini un model propriu de haşurare. Procedura este definită astfel:
Procedure SetFillPattern (m:FillPatternType; c:word);
M este de tip predefinit FillPatternType şi descrie modelul de haşurare folosind un tabel de optocteţi, adică un tabel bidimensional de 8X8 biţi.
C defineşte culoarea de haşurare.Tipul SetFillPatern este definit astfel:
Type FillPatternType=array[1..8] of byte;
GetFillPattern
Procedura GetFillPattern permite obţinerea informaţiilor despre ultimul model de haşurare stabilit printr-un apel de procedură SetFillpattern. Procedura este definită astfel:
Procedure getfillPatter (var m:FillPatternType);
M este de tip predefinit FillPatterntype şi va conţine modelul utilizatorului.
7.2 Aplicaţie
program poligon;
uses crt,graph;
const
triunghi: array [1..4] of pointtype=((X:50;Y:100), (X:100; Y:100), (X:150;Y:150), (X:50;Y:100));
var
Gd,gm,I,width:integer;
Ch:char;
Fillinfo: FillSettingsType;
Begin
Gd:=detect;
Initgraph(gb,gm,’c:bpbgi’);
If graphresult<>grOk then halt(1);
Repeat
OutTextXY(10.0.’apasati’);
OutTextXY (10.10.’1-Bar 2-Bar3D 3-Triunghi 4-HasurareTriunghi 5-reptunghi 6-HasurareDreptunghi’);
OutText 10.470.’0-iesire’);
Ch:=readkey;
Case ch of
‘1’:begin
for I:=1 to 5 do
bar(I*10,I*10,succ(I)*10,200);
end;
‘2’ begin
bar3d(500,300,650,360,10,TopOn);
bar3d(500,360,600,380,10,TopOff);
end;
‘3’:begin
drawpoly(SizeOff(triunghi)div SizeOff(PointType), triunghi);
end;
‘4’:begin
Fillpoly(Sizeoff(triunghi) div sizeoff(pointtype), triunghi);
End;
‘5’:begin
rectangle(100.100.200.200);
end;
‘6’:begin
GetFillSettings(fillInfo);
Bar(0,0,50,50);
Setfillstyle(xhatchfill, GetMaxColor);
Bar(50, 0, 100, 50);
With FillInfo do
SetFillStyle (Pattern, Color);
Bar(100.0.150.50);
End;
End;
Until ch=’0’;
Readln;
CloseGraph;
End.
Căutări Recente: modele de poligoane , hasurari , functia rectangle , deseneaza un poligon , ce inseamna hasureaza un triunghi , proceduri predefinite sunt subprograme , hasurari in word , dreptunghiul este poligon , desene din polighoane , desene cu poligoaneArticole Asemănătoare:
Recent Comments