Graph кітапханасын қолдану



4.0 нұсқасынан бастап Турбо Паскал құрамына қуатты GRAPH графикалық қосымша бағдарламалық кітапхана енгізілді.
Кітапханада программистің (бағдарлама құрушы) графикалық экранда басқаруына арналған 50-ге жуық процедуралар мен функциялар қызметі енгізілген. Кітапхана құрамындағы процедуралар мен функциялар қызметтік принципіне сәйкес топтастырылған.
Графикалық режимге өту және мәтіндік режимге қайтып оралу.
ДК қосылғаннан кейінгі қалыпты күйі, Турбо Паскал бағдарламасының қосылар сәті мәтіндік режимдегі жұмыс экранына сәйкес келеді.Сондықтан компьютердің графикалық тәсілдерін қолданатын әрбір бағдарлама дисплейлік адаптердің графикалық режимін де басқару керек. Жұмыс аяқталған соң (Д.К. барлық бағдарламалары) мәтіндік режимге қайта оралады.
Дисплейлік адаптердің графикалық режимінің жұмысы туралы қысқаша сипаттама.
Графикалық процедураларды нақты адаптерге орнату, жұмыс жасау қажетті графикалық драйверді қосу арқылы іске асады. Драйвер – Д.К-ң техникалық амал тәсілдерін басқаруда жүзеге асыратын арнайы бағдарлама. Графикалық драйвер графикалық режимдегі дисплейлік адаптерді басқарады. Графикалық драйверді Borland фирмасы жасап шығарған. Ол адаптердің барлық типіне жарамды. Олар BGI қосымша каталогінде кеңейтілген файл түрінде дискке орналасады.
Қазіргі кезде шығарылатын ДК (IBM) ЭЕМ фирмасы шығарған адаптерлермен жабдықталады. Монохромды MOD адаптерден басқа адаптерлердің барлығы графикалық режимде жұмыс жасай алады. Бұл режимде дисплейдің экраны жақын орналасқан пиксел нүктелерінің жиынтығы ретінде қаралады. Олардың жарқыраун бағдарлама арқылы басқаруға болады. Адаптердің графикалық мүмкіндігі экрандағы пикселдің мөлшерімен түстердің (рең) санымен анықталады. Көптеген адаптерлер бірнеше графикалық парақтармен жұмыс жасайды. Графикалық парақ (парақ, бет) – деп жедел жад аймағын айтады. Экранның сызбасын жасауға қолданады, яғни әрбір пикселдің реңгі (жарығын) туралы мәлімет сақтайды.

GRAPH кітапханасын қолдану

4.0 нұсқасынан бастап Турбо Паскал құрамына қуатты GRAPH графикалық
қосымша бағдарламалық кітапхана енгізілді.
Кітапханада программистің (бағдарлама құрушы) графикалық экранда
басқаруына арналған 50-ге жуық процедуралар мен функциялар қызметі
енгізілген. Кітапхана құрамындағы процедуралар мен функциялар қызметтік
принципіне сәйкес топтастырылған.
Графикалық режимге өту және мәтіндік режимге қайтып оралу.
ДК қосылғаннан кейінгі қалыпты күйі, Турбо Паскал бағдарламасының
қосылар сәті мәтіндік режимдегі жұмыс экранына сәйкес келеді.Сондықтан
компьютердің графикалық тәсілдерін қолданатын әрбір бағдарлама дисплейлік
адаптердің графикалық режимін де басқару керек. Жұмыс аяқталған соң (Д.К.
барлық бағдарламалары) мәтіндік режимге қайта оралады.
Дисплейлік адаптердің графикалық режимінің жұмысы туралы қысқаша
сипаттама.
Графикалық процедураларды нақты адаптерге орнату, жұмыс жасау қажетті
графикалық драйверді қосу арқылы іске асады. Драйвер – Д.К-ң техникалық
амал тәсілдерін басқаруда жүзеге асыратын арнайы бағдарлама.
Графикалық драйвер графикалық режимдегі дисплейлік адаптерді басқарады.
Графикалық драйверді Borland фирмасы жасап шығарған. Ол адаптердің барлық
типіне жарамды. Олар BGI қосымша каталогінде кеңейтілген файл түрінде
дискке орналасады.
Қазіргі кезде шығарылатын ДК (IBM) ЭЕМ фирмасы шығарған адаптерлермен
жабдықталады. Монохромды MOD адаптерден басқа адаптерлердің барлығы
графикалық режимде жұмыс жасай алады. Бұл режимде дисплейдің экраны жақын
орналасқан пиксел нүктелерінің жиынтығы ретінде қаралады. Олардың жарқыраун
бағдарлама арқылы басқаруға болады. Адаптердің графикалық мүмкіндігі
экрандағы пикселдің мөлшерімен түстердің (рең) санымен анықталады. Көптеген
адаптерлер бірнеше графикалық парақтармен жұмыс жасайды. Графикалық парақ
(парақ, бет) – деп жедел жад аймағын айтады. Экранның сызбасын жасауға
қолданады, яғни әрбір пикселдің реңгі (жарығын) туралы мәлімет сақтайды.

Graph модулін пайдаланып программалау
Graph модулінің жалпы сипаттамасы

Graph модулі IBM – типтес дербес компьютерлердің графикалық адаптерлерімен
жұмыс істеуіне есептелінген, графикалық процедуралар мен функциялардың,
тұрақтылардың, айнымалылар мен типтердің қуатты кітапханасы болып
табылады. TurboPascal -7.0 ортасын қолданатын Паскаль тілінде
программалауда Graph модулінің 132 тұрақтысы, 7 қосымша типі, 2
айнымалысы, 57 процедурасы және 22 функциясы пайдаланылады.
TurboPascal – да графикалық драйверлер деп аталатын арнайы
программалар (BGI – файлдар) видеоадаптерлерінің қалыпты жұмысын
басқарады.

Драйверлер Видеоадаптерлер
CGA.BGI CGA,MCGA
EGAVGA.BGI EGA,VGA
HERC.BGI Hercules (монохромды)
ATT.BGI AT&T 6300 (400 жол)
PC3270.BGI 3270 PC
IBM 8514.BGI IBM -8514

Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктерін өзгерте алатын
бірнеше графикалық режимде жұмыс жасай алады. Мәтіндік режимде экранда
40(80) х 25 символ бейнелеуге болатын болса, графикалық режимде онда
бейнеленетін ең кіші объект – графикалық нүкте – пиксел деп аталады.
Мысалы: көп қолданылатын VGA адаптерінің қалыпты режимінде экранда 640 х
480 пиксел көрінеді және олардың 16 түсін айыруға болады.

Uses Graph операторын программа басына орналастырғанда ғана Graph
модулінің қызметін толық пайдалануға мүмкіндік бар.

InitGraph (Gd,Gm, ‘c:\TP7’) процедурасы дербес компьютерге қойылған
видеоадаптерді автоматты түрде тауып, сәйкес графикалық драйверді іске
қосады және оны графикалық режимге көшіреді.

Мұнда ‘c\TR7’ – драйвер файлына апаратын жол. Графикалық драйверді анықтау
(Gd) және олардың жұмыс режимдерін қою (Gm) тұрақтылары (тәжірибеде жиі
пайдалыланатын режимдер) төмендегі кестеде берілген:

Gm
Gd
Detect= 0 EGALo =0 {640 x 200; 16 түс; 4 бет }
CGA =1 EGAHi =1 {640 x 350; 16 түс; 2 бет }
MCGA= 2 EGA64Lo =0 {640х 200; 16 түс; 1 бет}
EGA= 3 EGA64Hi=1 {640 х 350; 4 түс; 1 бет}
EGA64= 4 EGAMonoHi=1 {640 х 350; 64К: 1бет; 256К:2 бет}
EGAMono= 5 VGALo = 0 {640 х 200; 16 түс; 4 бет}
IBM85 14= 6 VGAMed=1 {640 х 350; 16 түс; 2 бет}
HercMono =7 VGAHi = 0 {640 х 480; 16 түс; 1 бет}
ATT400 =8 PC3270Hi = 0 {720 х 350 ;1 бет }
VGA =9 IBM8514Lo=0 {640 х 480;256 түc}
PC3270 =10 IBM8514Hi=1 {1024 х 768; 256 түс}

GraphResult функциясының нөлден өзге мәні (қателік
коды) режимге көшу қателігін көрсетеді.

CloseGraph процедурасы графикалық драйверді жадтан шығарып, видеоадаптердің
мәтіндік режимін қалпына келтіреді.

Графикалық координаталар жүйесі

Графикалық координаталар экрандағы нүктенің (пикселдің) орнын анықтайды.
Графикалық координаталар пикселдердің реттік нөмері алынады. Мысалы,
640*480 режимінде хгр, угр координаталары 0 хгр 639, 0 угр 479 аралықта
болады. Хгр координатасының мәні оңға, ал угр координатасының мәні төмен
қарай өседі. Хгр, угр шектеулі бүтін мәндерді ғана қабылдайды.
Нүктені экранда бейнелеу үшін оның декарттық х,у координаталарын графикалық
Xгр, Yгр координаталарға
Xгр=mx* x+dx
yгр= ry-my*y-dy
формулаларын қолданып түрлендіруге болады. Мұндағы dx және dy кескіннің
экранның сол жақ жоғарғы шетіне қарағандағы ығысуын қамтамасыз етеді, ал
mx, my айнымалыларының мәндері
rx=mx*xmax+1,
ry= my* ymax+1
шарттарын қанағаттандыруы тиіс (xmax және ymax декарт координаталарының
ең үлкен мәндері). Мысалы, кескінді экранның центріне орналастыру қажет
болса

dx= rx div 2, dy=rydiv 2
деп аламыз.

Графикалық экран мен элементтердің параметрлерін қою процедуралары

Процедура Қызметі
П: Move To (x,y: integer) Көрсеткішті (х,у) нүктесіне қояды
П : Move Rel (dx, dy: integer) Көрсеткішті (dx, dy)векторына
ығыстырады
П: Set Graph Mode (r: integer) Экранды алынған режимге көшіреді
және оны тазалайды.
П: Set Color (c:word) Суреттің түсін анықтайды,
С:0-қара,1-көк,2-жасыл,3-көгілдір, 4-қ
ызыл,5-қызғылт,-6-қоңыр,7-ашық
сұр,8-қара сұр,9-ашық көк,10-ашық
жасыл,11-ашық көгілдір,12-ашық
қызыл,13-ал
қызыл,14-сары,15-ақ,128-жыпылықтау .
П: Set Bk Color(c:word) Экран төсегінен түсін анықтайды.
П: Clear Device Көрсеткішті (0,0) нүктесіне қояды
және экранды төсек түсімен
толтырады.
П: Set Line Style(s,t:word) Сызықтың типін және жуандығын
анықтайды.
S:
0-тұтас,1-нүктелік,2-штрих-пунктир лі,
3-пунктирлі,4-орынд.типі,
t: 0-қалыпты, 1-жуан
П: Set Text Style(f,n,r:word) Мәтінді экранға шығару
параметрлерін анықтайды F-
шрифт(0,1,2,3,4),n-бағыт(0,1),
r-шрифт өлшемі (1,x4)
П:Set Fill Style(s,c:word) Толтыру стилің және оның түсін
анықтайды.
S: 0-төсек түсімен толтыру,
1- берілген түспен толтыру,
П: Set Fill Pattern Орындаушының толтыру стилің және оның
(s:Fill Pattern Type,c:word) түсің анықтайды , стандарт тип
FillPatternType=array(1..8)of byte
П: Set Active Page(p:word) Белсенді беттің нөмерің анықтайды
П:Set Visual Page( P:word) Көрінетін беттің нөмерің анықтайды
П:Set View Port(x1, Графикалық терезе кескіндейді
y1,x2,y2:integer;Clip On:boollean)
П:Set Palette(cp,c:ShortInt) С түсінің ренің өзгертеді
П:Set All Palette (cp:word) Барлық түс рендерін бірден өзгетеді
П:Set RGBPalette(c,r,g,b:ShortInt) C түсінің қызыл, жасыл, көк
құраушыларың өзгертеді (0r,g,b63)

Графикалық элементтерді бейнелеу процедуралары.
Процедура қызметі
П: Put Pixel (x, y : integer ; c: word)Координаталары (x,y) болатын нүктені с
түспен экранға шығарады
П: Line (x1, y1, x2, y2: integer) Координаталары (x1,y1) және (x2,y2,)
болатын 2 нүктені қосып кесінді сызады
П: Line Rel (dx, dy : integer) Көрсеткішті (dx,dy) векторына
ығыстырып, кесінді сызады
П: LineTo (x, y: integer) Көрсеткішті (x,d) нүктесіне ығыстырып
кесінді сызады
Rectangle (x1, y1, x2, y2 : integer) Қарама-қарсы төбелерінің координаталары
(x1,y1) және(x2,y2) болатын тік
төртбұрыш сызады
Draw Poly (n: word; n-бұрышты көпбұрыш сызады
M : array [1..n] of Point Type) M- жазбалар массиві: PointType=record
x,y:integer;
End
Circle (x, y: integer; r: word) Центрі (x,y) нүктесінде және радиусы r
болатын шеңбер сызады
Arc (x,y: integer; a1,a2,r:word) Центрі (x,y) нүктесінде, радиусы r
болатын шеңбердің бастапқы және соңғы
бұрыштары a1және a2-ге(градус) тең
доғасын сызады
Ellipse(x,y:integer;a1,a2,xr,yr:wo rd) Центрі (x,y) нүктесінде, координат
остері бағытындағы радиустері xr,yr
болатын эллипстің бастапқы және соңғы
бұрыштары a1,a2-ге (градус) тең доғасын
сызады
FloodFill(x,y:integer;c:word) Алдын-ала қойылған параметрлерге сәйкес
(x,y) нүктесі жатқан тұйық аймақты
толтырады. C- аймақ шекарасының түсі
OutText(s:string) Көрсеткіш тұрған нүктеден бастап мәтін
жолын экранға шығарады
SetTextJustify(x,y:word) Мәтінді автоматты түрде жатық (x)және
тік жол (y) бағыттарында қатарластырады
x:0-сол жақтан,1-ортадан,2-оң жақтан;
y:0-төменнен,1-ортадан,2-жоғарыдан
OutTextXY(x,y:integer;s:string) Координаталары (x,y) болатын нүктеден
бастап мәтін жолын экранға шығарады
Bar(xl,yl,x2,y2:integer) Қарама-қарсы бұрыштарының
координаталары (x1,y1)және (x2,y2)
болатын тіктөртбұрышты алдын-ала
қойылған параметрлерге сәйкес толтырады
FillPoly(n:word;M:array[1..n]of point N-бұрышты көп бұрышты толтырады
Type) M- жазбалар массиві
PointType=record
x,y:integer;
end
PieSlice(x,y:integer;a1,a2,r:word) Центрі (x,y) нүктесінде, радиусы r
болатын шеңбердің бастапқы және соңғы
бұрыштары a1жәнеa2-ге (градус) тең
секторын толтырады
FillElipse(x,y:ineger;xr,yr:word) Центрі (x,y)нүктесінде координата
остері бағытындағы радиустері xr,yr
болатын эллипсті алдын-ала қойылған
параметрлерге сәйкес толтырады
Sector(x,y:integer;a1,a2,xr,yr:wor d) Центрі (x,y) нүктесінде , радиустері
xr,yr болатын эллипстің бастапқы және
соңғы бұрыштары a1және a2-ге (градус)
тең секторын толтырады
Bar3D(x1,y1,x2,y2,d:integer;A:poin ter) Беткі жағы берілген тіктөртбұрыш
болатын және D қалыңдығы бойынша
паралеллипипед сызады.
top=true болса, онда оның жоғарғы жағы
сызылады, top=false болса, сызылмайды
GetImage(x1,y1,x2,y2:integer;A:poi nter)Кескіннің көрсетілген тіктөртбұрышты
фрагментін жадыда сақтайды
PutImage(x,y:integer;A:pointer;M:S ortInЖадыда сақталған кескін фрагментін
t) берілген режимге (0..4) сәйкес экранның
көрсетілген орнына шығарады

Графикалық экран мен элементтердің параметрлерің қою функциялары.
Фукция Қызметі
Get Max X: integer Экранның жатық жолы бойынша ең үлкен
пиксел саның береді.
Get Max Y: integer Экраның тік жолы бойынша ең үлкен
пиксел саның береді.
Get X: integer Көрсеткіштің ағымдық х координатасың
береді.
Get Y: integer Көрсеткіштің ағымдық у координатасың
береді
Get Color: word Суреттің ағымдық түсің береді.
Get Bk Color: word Төсектің ағымдық түсің береді.
Get Max Color: word Set Color проц. Пайдаланылатын
түстің ең көп нөмерің береді
Get Pixel (x, y: integer): word (x, y) координаталарымен берілген
пикселдердің түсін береді.

Турбо Паскалдың графикалық мүмкіндіктерің толық пайдалану арқылы төмендегі
жұмыстарды атқаруға болады :
Екі өлшемді кескіндерді салу (жазық геометриялық фигуралар мен
сызбалар, графиктер, диаграммалар, пиктограммалар, схемалар және т.б.) ;
Үш өлшемді кескіндерді салу (кеңістік геометриялық фигуралар мен
денелер, беттер, гистогрммалар, диаграммалар және т.б.) ;
Динамикалық кескіндерді сплу (кескін проекциясын және қалпын өзгерту,
анимациялау, көру эффектісін туғызу және т.б.) ;
Әртүрлі ойын және оқыту программаларын жасақтау ;
Мысалы:
1. Қызыл крест және жарты ай эмблемасын салу.
Program Prost 56;
Uses Graph;
Const a= 100; h=50; st=1; c=4;
Var Gd, Gm, x, y: integer;
Begin
Gd : = Detect; Init Graph (Gd, Gm,’c:\tp7)
x : = Get Max X div 2+60; y : = Get Max Y div 2;
Move To (x-a-h div 2, y-h div 2); Set Color (c);
Line Rel (a,0); Line Rel (0,-a); ); Line Rel (h,o); Line Rel(0,a);
Line Rel (a,0); Line Rel (0,h); Line Rel (-a,0); Line Rel (0,a);
Line Rel (-h,0); Line Rel (0,-a); Line Rel (-a,0); Line Rel (0,-h);
Set Fill Style (st, c); Flood Fill (x, y, c);
Arc (x-100, y, 90, 270, 173); Arc (x, y, 120, 240, 200);
Flood Fill (x-210, y, c); Readln; Close Graph;
End.
2. Толтыру стилің және оның нөмерін векторлық шрифтермен көрсету.
Program Prost 57;
Uses Graph;
Const a=300; b=200;
Var Gd, Gm, x, y, x1, y1, x2, y2, xt, yt: integer;
S: string;
Begin
Gd : = Detect; Init Graph (Gd, Gm,’c:\tp7)
x : = Get Max X div 2; y : = Get Max Y div 2;
Randomize; Set Color (14);
x1 : = x-a div 2; y1 : = y-b div 2;
x2 : = x+a div 2; y2 : = y+b div 2;
for i : = 1 to 12 do
Begin
Set Fill Style (I, Random (13)+1);
Bar (x1, y1, ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Турбо Паскаль программалау жүйесі
Турбо Паскальдағы Graph модулі
Паскаль тіліндегі модульдер
Графиктік режимге көшу адаптері
Программалау тілдері туралы ұғым
Турбо Паскальда графикалық процесстерді қолдану
Turbo pascal программалау тілі туралы
„Трэк” ойыны
Құрылымдық модульдік программалау
Турбо паскальдағы графикалық процедура
Пәндер