63
v) Qövslərin, çevrələrin və ellipslərin çəkilməsi:
1.
CİRCLE (X,Y, R)
Mərkəzi (X, Y) korrdinatlı nöqtədə, radiusu R-ə (piksellə) bərabər olan çevrə çəkir. Burada X, Y-
İNTEGER tipli, R- WORD tipli ifadələrdir.
2. ARC (X, Y, başlanğıc bucaq, son bucaq, R)
Mərkəzi (X, Y) koordinatlı nöqtədə yerləşən, radiusu R olan, başlanğıc bucağı- başlanğıc bucaq,
son bucağı- son bucaq olan cevrə qövsü çəkilir. Burada, X, Y- İNTEGER; başlanğıc bucaq, son bucaq,
R- WORD tipli ifadələrdir. Qed edək ki, bucaqlar saat əqrəbinin hərəkətinin əksi istiqamətində
hesablanaraq dərəcələrlə verilir.
3.ELLİPSE (X, Y, başlanğıc bucaq, son bucaq, RX, RY)
Mərkəzi (X.Y) koordinatlı nöqtədə , başlanğıc və son bucaqları uyğun olaraq başlanğıc bucaq,
son bucaq, radiusları isə Rx və Ry olan ellips cəkir.
Burada, X, Y- İNTEGER; başlanğıc bucaq, son bucaq, RX, RY- WORD tipli ifadələrdir.
q) Rənglər və fiqur daxilinin doldurulmasının təyini:
1. SETCOLOR (rəng)
Çəkiləcək xətlər və simvollar üçün rəng ifadəsi ilə verilən rəngi təyin edir. Rənglərə uyğun
rəqəmlə 0…15 arasında dəyişir.
2.SETBKCOLOR (rəng)
Ekranın fonunu rəngini müəyyən edir.
3.SETFİLLSTYLE (ştrix, rəng)
Ştrixləmənin üslubunu təyin edir. Burada, ştrix- WORD tipli ifadə olub ştrixin tipini; rəng-
WORD tipli ifadə olub ştrixin rəngini göstərir.
Ştrixləmə üçün 0..12 arasında rəqəmlərdən istifadə etmək olar.
4.FLOODFİLL (X, Y, SR)
İstənilən qapalı fiquru ştrixləyir. Burada, (X, Y)- İNTEGER tipli ifadə olub, qapalı fiqur daxilində
yerləşən ixtiyari nöqtənin koordinatıdır; SR- WORD tipli ifadə olub, ştrixin sərhəd xəttinin rəngidir.
5.BAR (X1, Y1, X2, Y2)
Ekrandakı sol yuxarı küncü (X1, Y10, aşağı sağ küncü isə (X2, Y2) olan düzbucaqlı oblastı
əvvəlcədən təyin edilmiş ştrixlərlə ştrixləyir. Ştrix SETFİLLSTYLE ilə təyin edilir. Burada, X1, Y1, X2,
Y2- İNTEGER tipli ifadələrdir.
6.
FİLLPOLY (N,
koordinatlar)
7.
N təpəyə malik olan, təpələrinin koordinatları koordinatlarla verilən çoxbucaqlı ilə əhatə
olunmuş ekran hissəsi əvvəlcədən müəyyən edilmiş ştrixlərlə ştrixlənir. Burada, N- WORD tipli ifadə,
koordinatlar- DRAW POLY prosedurunda verilən PointType tipli ifadədir.
8.
FİLLELLİPSE (X, Y,
Ekran hissəsini mərkəzi İNTEGER tipli ifadələrlə verilmiş (X, Y) koordinatlı nöqtədə, başlanğıc
və son bucaqları uyğun olaraq WORD tipli ifadələrlə verilən başlanğıc bucaq, son bucaq olan, radiusları
WORD tipli ifadələrlə verilmiş RX və RY olan ellipslə əhatə olunaraq əvvəlcədən təyin edilmiş ştrixlə
ştrixlənir.
9. SECTOR (X, Y, başlanğıc bucaq, son bucaq, RX, RY)
Mərkəzi İNTEGER tipli ifadələrlə verilmiş (X, Y) koordinatlı nöqtədə, başlanğıc və son bucaqları
uyğun olaraq WORD tipli ifadələrlə verilən başlanğıc bucaq, son bucaq olan, radiusları WORD tipli
ifadələrlə verilmiş RX və RY olan ellips sektoru çəkilir və əvvəlcə-dən təyin edilmiş ştrixlə ştrixlənir.
10.
PİESLİCE (X, Y, başlanğıc bucaq, son bucaq, R)
Mərkəzi İNTEGER tipli ifadələrlə verilmiş (X, Y) koordinatlı nöqtədə, başlanğıc və son
bucaqları uyğun olaraq WORD tipli ifadələrlə verilən başlanğıc bucaq, son bucaq olan, radiusu WORD
tipli ifadə ilə verilmiş R olan çevrə sektoru çəkilir və əvvəlcədən təyin edilmiş ştrixlə ştrixlənir.
PROGRAM GRAFIK;
USES GRAPH,CRT;
LABEL M1;
VAR
DRIVER,MODE,ERROR:INTEGER;
A,B:WORD;
64
S:CHAR;
BEGIN
DRIVER:=DETECT;
INITGRAPH (DRIVER,MODE,'C:\BP\BGI'); (*QRAFIK REJIMA KECID*)
ERROR:=GRAPHRESULT;
IF ERROR<>GROK THEN (* QRAFIK REJIMA KECIDIN YOXLANMASI*)
WRITELN (GRAPHERRORMSG(ERROR))
ELSE
SETBKCOLOR(15); (*fonun rangi tayin olunur*)
PUTPIXEL(150,180,4); (*noqtanin cakilmasi*)
READLN (S); (*agar "Enter" duymasi basilarsa onda novbati*)
IF ORD(S)<>13 THEN GOTO M1; (*fiqur cakilacaq,aks halda proqramin sonudur*)
CLEARDEVICE; (*ekranin tamizlanmasi*)
SETCOLOR (5); (*rangin verilmasi*)
SETLINESTYLE(1,0,3); (*xattin cakilma uslubunun verilmasi*)
LINE (100,140,200,140); (*xattin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETLINESTYLE(2,0,3); (*xattin usulunun dayisdirilir*)
SETCOLOR(12);
LINE (100,140,150,240); (*xattin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETLINESTYLE(0,0,3); (*xattin usulunun yenidan dayisdirilir*)
SETCOLOR(6);
LINE (200,140,150,240); (*xattin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETCOLOR(9);
RECTANGLE (250,150,350,250); (*duzbucaqlinin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETLINESTYLE(1,0,1); (*xattin usulunun yenidan dayisdirilir*)
SETCOLOR(2); (*rangin dayisdirilmasi*)
CIRCLE (200,150,80); (*cevranin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETCOLOR (13); (*rangin dayisdirilmasi*)
ARC(250,200,45,135,80); (*qovsun cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;
SETBKCOLOR(13);
SETCOLOR (3); (*rangin dayisdirilmasi*)
SETLINESTYLE(0,0,3); (*xattin uslubunun dayisdirilmasi*)
ELLIPSE(280,250,0,359,60,30); (*ellipsin cakilmasi*)
READLN (S);
IF ORD(S)<>13 THEN GOTO M1;
CLEARDEVICE;