Ekranni grafik rejimga o‘tkazish. Odatda displey ekrani matnli rejimda bo‘ladi. Ekranni grafik rejimga o‘tkazish uchun Graph InitGraph modul protsedurasi qo‘llaniladi:
Initgraph(GD,GM,Path)– ekranni grafik rejimga o‘tkazish.
GD–drayver nomeri,
GM–rejim nomeri.
Path–kerakli drayverni saqlovchi faylga yo‘l. Agar Path bo‘sh qatorni saqlasa(Path="), u holda drayver joriy katalogdan izlanadi.
GD va GM lar o‘zgaruvchi-parametr hisoblanadi. Initgraph ishga tushirilganda GD nolga teng bo‘lsa, u holda kerakli drayver va optimal grafik rejim avtomatik ravishda aniqlanadi.
12.2. Paskal tilining grafik operatorlari
Graph modulida 80 ga yaqin protsedura va funksiya saqlanadi. Bular yordamida nuqtalar, oraliqlar, ellipslar, to‘g‘ri to‘rtburchaklar, ko‘pburchaklar chizish mumkin.
Koordinata sistemasini chizishni ko‘rib chiqamiz:
Ekranning har bir nuqtasi o‘zining koordinatasiga ega. YUqori chap burchak–bu (0,0) koordinatali nuqta. x absissalar o‘qi chapdan o‘ngga, y koordinatalar o‘qi esa yuqoridan pastga ortib boradi. Masalan, VGAHi (640x480) rejimida o‘ng chap burchak koordinatasi (639,479) dan iborat. Bu holda ekranning o‘rtasining koordinatasi (320,240) dan iborat. Agar ekranning o‘rtasiga nuqta quyish hohishi bo‘lsa, uni PutPixel protsedurasi yordamida bajarish mumkin.
PutPixel(X,Y,color) protsedura Color parametri bilan aniqlangan (X,Y) koordinatali nuqtani bo‘yaydi.
Masalan, PutPixel(100,120,Red) protsedurasining chaqirilishi natijasida (100,120) koordinatali qizil rangdagi nuqta paydo bo‘ladi. PutPixel protsedurasi kerakli joyga kerakli rangdagi nuqtani qo‘yadi, unga simmetrik bo‘lgan funksiya GetPixel bilan esa teskarisi, ya’ni berilgan koordinatali nuqta qanday rangga ega ekanligini aniqlash mumkin.
GetPixel(X,Y) funksiya (X,Y) koordinatali nuqtaga rang qiymatini qaytaradi. Agar Col- butun o‘zgaruvchi bo‘lsa, u holda Col:=GetPixel(50,80); operatori bajarilgandan keyin Col (50,80) nuqtada rang qiymatiga ega bo‘ladi.
Graph modulida sodda figuralar: oraliqlar, aylanalar, ellipslar, to‘g‘ri to‘rtburchaklar va hokazolarni chizish uchun bir qancha protseduralar mavjud:
Line(X1,Y1,X2,Y2) protsedurasi (X1,Y1) nuqtadan (X2,Y2) nuqtagacha oraliqni o‘tkazadi.
Circle(X,Y,Radius) protsedurasi markazi (X,Y) bo‘lgan va Radius li aylana chizadi.
Rectangle(X1,Y1,X2,Y2) protsedurasi chap yuqori burchagi koordinatasi (X1,Y1) va o‘ng pastki burchagi koordinatasi (X2,Y2) bo‘lgan to‘g‘ri to‘rtburchak chizadi.
SetColor(Color) protsedurasi chizmaning joriy rangini aniqlaydi. Agar bu protsedurada boshqa rang o‘rnatilgan bo‘lmasa, u holda joriy rang oq rang hisoblanadi.
Grafik rejimda rangni belgilash uchun o‘zgarmaslardan foydalanish mumkin:
const
Black=0; { qora }
Blue=1; { ko‘k }
Green=2; { yashil }
Red=4; { qizil }
Brown=6; { malla }
Yellon=14; { sariq }
White=15; { oq }
va hokazo.
SetTextStyle(Fond,direction,Size)- joriy shriftni, simvol o‘lchamini va matnni chiqarish yo‘nalishini o‘rnatadi. Font–shriftni aniqlaydi, Direction– matnni chiqarish yo‘nalishini (chapdan o‘ngga yoki pastdan yuqoriga), Size–shrift o‘lchamini aniqlaydi.
Arc protsedurasi aylana yoyini chizadi:
Arc(X,Y:integer; StAng,EndAng,Radius: word); bu erda X,Y– aylana markazi koordinatasi, StAng va EndAng– boshlang‘ich va oxirgi burchak, Radius– aylana radiusi.
uses Crt,Graph
var
Gd,Gm,I:integer;
begin
Gd:=Delect;
InitGraph(Gd,Gm,'d:\tp\bgi');
{ sariq fon }
SetBkColor(LightGray);
{ aylana yoyi asta-sekin buriladi va rangini o‘zgartirib kengayadi }
for I:=1 to 200 do
begin
SetColor(I div 15);
Arc(GetMaxX div2, GetMaxY div2, I,I+300, I+10);
end;
Readln;
CloseGraph;
end.
Do'stlaringiz bilan baham: |