19 -tema. Paskal tilinde ápiwayı formalar sızıw reje


Download 33.69 Kb.
Sana18.06.2023
Hajmi33.69 Kb.
#1594259
Bog'liq
19 -tema. Paskal tilinde ápiwayı formalar sızıw


19 -tema. Paskal tilinde ápiwayı formalar sızıw
REJE:
1. Ápiwayı sırtqı kórinislerdi chizuvchi proceduralar hám olardan paydalanıw
2. Sırtqı kórinislerdi boyaw hám shablon menen toltırıw

Grafikalı ortalıqta ob'ektlerdi sızıw ushın ápiwayı sırtqı kórinislerdi chizuvchi proceduralar hám olardan paydalanıw ushın funksiyalardan paydalanıw zárúr. Tómende olardı keltirip ótemiz:


PutPixel (x. y:integer;color:word ) -procedurası kórsetilgen color reńli (x. y) koordinatalı noqattı ekranda suwretleydi.
Mısalı : PutPixel (100, 100, red)-procedurası ekarnda (100, 100)-koordinatalı noqatda qızıl reńli noqat suwretin jaratadı.
Bul proceduradan programma quramında paydalanıp, nátiyjeli “effektlar” alıwımız múmkin.
Mısalı, tómendegi programma járdeminde ekranda
Setviewport (20, 20, 200, 200, true) procedurası menen belgilengen aynada 32000 noqatlardı
putpixel (random (getmaxx), random (getmaxy), random (255));
procedurası yorlamida túrli reńler menen bo'yab ájayıp suwret jaratılıwmasımız múmkin.
Programma kórinisi:

uses Graph;


var
Driver, Mode, d, m:integer;

begin
Driver:= Detect;


InitGraph (Driver, Mode, 'c:\tp\bgi');
setbkcolor (black);
Setviewport (20, 20, 200, 200, true);
for d:=1 tap 32000 do
putpixel (random (getmaxx), random (getmaxy), random (255));
readln;
CloseGraph ;
end.
GetPixel (x, y:integer):word funksiyası (x, y) koordinatalı noqattıń reńin anıqlawda qollanıladı. Bul funksiyadan paydalanıwǵa mısal keltiremiz:

uses graph;


var
gd, gm:integer; a:word ;
begin
gd:=detect; initgraph (gd, gm, ፄ); a:=getpixel (25, 25);writeln (a);readln;
end.

Line (x1, y1, x2, y2:integer)-procedurası (x1, y1) hám (x2, y2) koordinatalı noqatlarani tutastiruvchi tuwrı sızıq sızıw ushın isletiledi.


Mısal :
uses graph;
var
gd, gm, x1, x2, x3, y1, y2, y3:integer;
begin
gd:=detect; initgraph (gd, gm, ፄ);
x1:=45;y1:=45;x2:=160 ;y2:=120 ;x3:=100;y2:=80;
line (x1, y1, x2, y2); line (x3, y3, x2, y2); line (x1, y1, x3, y3);readln;
end.

mısal : line (10, 100, 340, 100);


LineTap (x, y:integer)-procedurası kórsetkish turǵan noqattan koordinatalri (x, y) bolǵan noqatqasha to'gri sızıq sızılishini támiyinleydi. Bul proceduradan paydalanǵannen keyin kórsetkish koordinatası sol noqatqa kóship ótedi.
mısal :
uses graph;
var gd, gm, i:integer;
begin gd:=detect;initgraph (gd, gm, ፄ);
for i:=1 tap 20 do
lineto (random (getmaxx), random (getmaxy));readln;
end.

LineRel (dx, dy:integer)-procedurası kórsetkish turǵan noqatqa salıstırǵanda koordinataları uyqas túrde (dx, dy) bahalarǵa arttırılǵan noqatqasha tuwrı sızıq sızılishini támiyinleydi.


uses graph;
var gd, gm:integer;
begin
gd:=detect; initgraph (gd, gm, ፄ);
moveto (100, 100); Linerel (100, 40 );readln;
end.

SetLineSstyle (type, Pattern, Thick:word )-procedurası sızılıwı kerek bolǵan sızıqtıń formasın ornatıw ushın qollanıladı.


Bul jerde:
Type- sızıqtıń formasın
Pattern- sızıqtıń úlgisi
Thick- sızıqtıń qalıńlıǵın anıqlawshı parametrler.
Sızıqtıń tipini tómendegi turaqlılar arqalı beriw múmkin:
const
Solidln =0; {uzluksiz sızıq}
Dotteln =1; {nuqtali sızıq}
Centerln =2; {shtrix-punktirli sızıq}
Dashedln =3; {punktirli sızıq}
Userbtln =4; {chiziq kórinisi paydalanıwshı tárepinen belgilenedi}
Pattern-parametri paydalanıwshı tárepinen belgilenetuǵın sızıqlar ushın anıqlanadı. Pattern parametri uzınlıǵı 16 piksel bolǵan kesmani anıqlaydı. Mısalı, bul parametr ma`nisi 100 ge teń bolsa, 16 pikseldiń sol bólegi”yoritiladi” qalǵan bólegi fon reńi menen ańlatpadanadi.programma sızılıwı zárúr bolǵan sızıqtı áne sol 16 pikselde ketm-ket suwretleydi.
Thick-parametri tómendegi bahalardı qabıl etedi:
const
NormWidth =1; {chiziq qalıńlıǵı 1 pixel}
ThickWidth =3; {chiziq qalıńlıǵı 3 pixel}
programma quramında shamalar -turaqlılikalr atınıń ózgertiwimiz múmkinligin esapqa alǵan halda, SetLineSstyle procedurasınan paydalanıwǵa mısal keltiremiz:
Mısal :
uses graph;
const úzliksiz=0; noqatli=1;Shtrix_punktir=2; punktir=3;foychiz=4;
chizqal=1;
var
gd, gm, i:integer;
begin
gd:=detect;initgraph (gd, gm, ፄ);
setlineStyle (noqatlı, 0, chizqal);moveto (100, 100);Lineto (400, 100);
setlineStyle (úzliksiz, 0, chizqal);moveto (100, 110 );Lineto (400, 110 );
setlineStyle (Shtrix_punktir, 0, chizqal);moveto (100, 120 );Lineto (400, 120 );
setlineStyle (punktir, 0, chizqal);moveto (100, 130 );Lineto (400, 130 );
setlineStyle (foychiz, 80, chizqal);moveto (100, 140 );Lineto (400, 140 );
readln;
end.
Túsindirme: domiyliklar atı ornına olardıń ma`nisinen de paydalanıwımız múmkin.
SetLineStyle- procedurası járdeminde ornatılǵan sızıqtıń forması járdeminde tórtmuyush, ko'pburchak hám basqa sırtqı kórinislerdi sızıwda paydalanıw múmkin.
rectangle (x1, y1, x2, y2:integer);-procedurası shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan to'gri tórtmuyush sızıw ushın isletiledi.
mısalı :
uses graph;
var gd, gm:integer;
begin
gd:=detect;
initgraph (gd, gm, 'c:\tp\bgi');
az waqıt reńi tek “qora” reńde emes,
rectangle (5, 5, getmaxx-5, getmaxy-5);
readln;
end.
SetColor (color:word );- procedurası sızılıwı hám baspadan shıǵarılıwı zárúr bolǵan sızıqlar hám simvollar reńin belilaydi. Graph modulında reńlerdi ańlatıw ushın Srt modulındaǵı turaqlıliklardan paydalanıladı.
GetColor :word - funksiyasınan ámeldegi reń kodın anıqlawda paydalanıladı.
GetMaxColor :word - funksiyası SetColor procedurasında paydalanıwı múmkin bolǵan maksimal kodtı anıqlawda isletiledi.
Tekstli jaǵdaydan ayrıqsha f qálegen bóle aladı. Grafikalı ekranda reńni anıqlaw arqalı pútkil ekran reńin ózgertiw múmkin, yaǵnıy bul ekrandı túrli tarawların túrli reńler menen “boyaw”ning ılajı joq.

Circle (x, y:integer;r:word ) ; - procedurası orayı ( x, y) hám radiusı r -piksel bolǵan sheńber sızıw isletiledi. Bul proceduradan paydalanıwda sızıq qalıńlıǵın parametr arqalı ózgertiw múmkin, biraq sızıq forması tek úzliksiz sızıqtan ibarat boladı.


Mısalı :. ..
setlinestyle (1, 0, 3);
circle (50, 50, 45);. .... Joqarıdaǵı proceduralar járdeminde ekranda oray koordinataları hám radiusları tasodufiy bahaǵa iye bolǵan 120 ta sheńber sızıw programmasın keltiremiz:
uses graph, crt;
var gd, gm, i:integer;
begin
gd:=detect;initgraph (gd, gm, ፄ);
for i:=1 tap 120 do
begin
setcolor (random (getmaxcolor));
circle (random (getmaxx), random (getmaxy), random (100));
end;
end.

Arc (x, y:integer;BegA, EndA, r:word ) ; - procedurası orayı ( x, y) hám radiusı r -piksel bolǵan sheńber yoyining BegA hám EndA múyeshlerine uyqas keliwshi bólegin sızıw ushın shlatiladi. BegA hám EndA graduslarda beriledi hám saat mili baǵdarına qarsı túrde esapqa aldınadılar.


Mısalı :
arc (200, 200, 90, 180, 35);


ellipse (x, y:integer; BegA, EndA, RX, Ryr:word ) ; - procedurası orayı ( x, y) hám gorizontal radiusı RX, vertikal radiusı Ry -piksel bolǵan ellips yoyining BegA hám EndA múyeshlerine uyqas keliwshi bólegin sızıw ushın shlatiladi.


Mısalı :
ellipse (100, 100, 150, 60, 145, 100);
SetFillStyle (fill, color:word );-procedurası qandayda bir tarawdı toltırıwdıń stili hám reńin belgileyd i. Toltırıw tipi ushın tómendegi shamalardan paydalanıladı :
const
EmptyFill =0;{fon reńi menen toltırıw}
SolidFill =1;{yaxlit-úzliksiz toltırıw }
LineFill =2;{----- simvollari menen toltırıw}
LtslashFill =3;{ /////// simvollari menen toltırıw}
SlashFill =4;{ //// qalıń simollari menen toltırıw}
BkSlashFill =5;{\\\\\ qalıń simvollari menen toltırıw }
LtBkSlashFill =6 ;{ //// simvollari menen toltırıw }
HatchFill =7;{+++++ simvollari menen toltırıw }
XHatchFill =8;{ xxxx simvollari menen toltırıw }
InterLeaveFill =9 ;{kataklar menen toltırıw}
WideDotFill =10 ;{kam sanlı -tıǵız bolmaǵan noqatlar menen toltırıw }
CloseDotFill =11;{zich bolǵan noqatlar menen toltırıw }

UserFill =12;{foydalanuvchi tárepinen anıqlanǵan forma menen toltırıw}


floodfill (x, ol;integer; Barder:word );-procedurası qálegen shegaralanǵan tarawdı aldınan anıqlanǵan tarawdı toltırıwdıń stili hám reńi menen toldıradı.


mısalı : parametrleri (150, 150, getmaxx-150, getmaxy-150) bolǵan tórtmuyush tarawdı túrli stillerde tolıqlawısh programmanı keltiremiz:

uses graph;


var gd, gm:integer; i:byte;
begin
gd:=detect; initgraph (gd, gm, 'c:\tp\bgi');setbkcolor (black);
setcolor (red);setlinestyle (0, 0, 1);
for i:=0 tap 12 do
begin
setfillstyle (i, green);rectangle (150, 150, getmaxx-150, getmaxy-150);
floodfill (160, 160, red);
readln;
end;
readln;
end.
Bar (x1, y1, x2, y2:integer);-procedurası shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan tuwrı tórtmuyushli ekran salasın toldıradı.
mısalı : bar (340, 125, 480, 220 );
Bar hám setfillstyle proceduraları járdeminde 12 tuwrı tórtmuyushli tarawdı túrli stillerde toltırıp, toltırıw stilin kórsetiw etiwshi programma jaratıń.
uses graph, crt;
const
stil:array[0..11]of string= ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11');
var
gd, gm, a, b:integer; i:byte;
begin
gd:=detect;initgraph (gd, gm, ፄ);setbkcolor (black);
a:=5; b:=100;
for i:=0 tap 11 do
begin
setfillstyle (i, 4);bar (a, 100, a+50, 200);outtextxy (a+15, 75, stil[i]);a:=a+50;
end;
readln;
end.
Bar3 d (x1, y1, x2, y2, depth:integer;top:boolean);-procedurası aldınǵı aymaǵı shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan parallelepiped suwretin jaratıwda isletiledi.
bul jerde :
-depth-úsh o'lmali suwrettiń úshinshi ólshemi
- tap - parallelepipedning joqarı aymaǵın sáwlelendiriw ushın isletiledi, yaǵnıy “true” qiymtida joqarı aymaq hákis etirilsa, kerisinshe halda ol “kórinbeydi”.
Mısalı : Bar3 d procedurası járdeminde ekranda parallelepipedning joqarı aymaǵın sáwlelendiriw hám hákis etirilmasligini kórsetiw etiwshi programmanı keltiremiz.
uses graph, crt;
var gd, gm:integer;
begin
gd:=detect;initgraph (gd, gm, ፄ);
setbkcolor (black);setcolor (magenta);
begin
bar3 d (100, 100, 200, 200, 25, true);
bar3 d (300, 100, 400, 200, 25, false);
end;
readln;
end.
FillEllipse (x, y, Rx, Ry:integer)-orayı (x, y noqatda bolǵan gorizontal radiusı Rx-ga, vertikal radiusı Ry-ga teń ellipsni toltırıw ushın isletiledi. ( Rx hám Ry-piksellerde)
Mısalı : fillellipse (340, 220, 100, 50);

Sector (x, y:integer;BegA, EndA, Rx, Ry:word )-procedurası orayı (x, y) noqatda bolǵan gorizontal radiusı Rx-ga, vertikal radiusı Ry-ga teń ellipsning baslanǵısh múyeshi BegA-ga, aqırǵı múyeshi EndA ga teń sektorın anıqlanǵan forma menen toldıradı.


Mısalı : sector (200, 200, 180, 200, 55, 300);

PieSlice (x, y:integer;BegA, EndA, R:word )-procedurası orayı (x, y) noqatda bolǵan radiusı R-teń sheńberdiń baslanǵısh múyeshi BegA-ga, aqırǵı múyeshi EndA ga teń sektordı berilgen forma menen toldıradı.


Mısalı : PieSlice (300, 300, 145, 360, 100);

Soraw hám tapsırmalar.


1. PutPixel operatorı haqqında sóylep beriń.
2. Ekranda qandayda bir forma sızıw ushın onıń reńi qaysı operator járdeminde saylanadı?
3. Paskalda kesma sızıw múmkinshiligin ámelde kórsetip beriń.
4. Qaysı procedura sızıqtıń formasın ornatıw ushın qollanıladı?
5. SetLineStyle- procedurası járdeminde qanday sırtqı kórinislerdi sızıwda paydalanıladı?
6. Sheńber qaysı operator járdeminde sızıladı?
7. SetFillStyle operatorın wazıypasın aytıp beriń.
8. Bar hám Bar3 D operatorların wazıypası neden ibarat?
9. FillEllipse operatorı qanday forma sızadı?
ASOSIY ADABIYOTLAR:
1. Slinkin D. A. Osnovi programmirovaniya na Turbo-Paskale: Uchebno-metodicheskoe posobie dlya studentov vuzov. Shadrinsk: Izd-vo Shadrinskogo pedinstituta, 2003.- 146 -151 cs.
2. Faronov V. V. Turbo Pascal. — SPb.: VXV- Sankt-Peterburg, 2004.- 1056 c. (329 -341 cc)
3. M. Ol. Ashurov, N. D. Xatkerxmedova. Turbo Pascal programmalastırıw tili. (stilistik qóllanba ), Tashkent TDPU - 2011 (88-94)


Download 33.69 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling