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


Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 21 бет
Таңдаулыға:
GRAPH кітапханасын қолдану
4. 0 нұсқасынан бастап Турбо Паскал құрамына қуатты GRAPH графикалық қосымша бағдарламалық кітапхана енгізілді.
Кітапханада программистің (бағдарлама құрушы) графикалық экранда басқаруына арналған 50-ге жуық процедуралар мен функциялар қызметі енгізілген. Кітапхана құрамындағы процедуралар мен функциялар қызметтік принципіне сәйкес топтастырылған.
Графикалық режимге өту және мәтіндік режимге қайтып оралу.
ДК қосылғаннан кейінгі қалыпты күйі, Турбо Паскал бағдарламасының қосылар сәті мәтіндік режимдегі жұмыс экранына сәйкес келеді. Сондықтан компьютердің графикалық тәсілдерін қолданатын әрбір бағдарлама дисплейлік адаптердің графикалық режимін де басқару керек. Жұмыс аяқталған соң (Д. К. барлық бағдарламалары) мәтіндік режимге қайта оралады.
Дисплейлік адаптердің графикалық режимінің жұмысы туралы қысқаша сипаттама.
Графикалық процедураларды нақты адаптерге орнату, жұмыс жасау қажетті графикалық драйверді қосу арқылы іске асады. Драйвер - Д. К-ң техникалық амал тәсілдерін басқаруда жүзеге асыратын арнайы бағдарлама. Графикалық драйвер графикалық режимдегі дисплейлік адаптерді басқарады. Графикалық драйверді Borland фирмасы жасап шығарған. Ол адаптердің барлық типіне жарамды. Олар BGI қосымша каталогінде кеңейтілген файл түрінде дискке орналасады.
Қазіргі кезде шығарылатын ДК (IBM) ЭЕМ фирмасы шығарған адаптерлермен жабдықталады. Монохромды MOD адаптерден басқа адаптерлердің барлығы графикалық режимде жұмыс жасай алады. Бұл режимде дисплейдің экраны жақын орналасқан пиксел нүктелерінің жиынтығы ретінде қаралады. Олардың жарқыраун бағдарлама арқылы басқаруға болады. Адаптердің графикалық мүмкіндігі экрандағы пикселдің мөлшерімен түстердің (рең) санымен анықталады. Көптеген адаптерлер бірнеше графикалық парақтармен жұмыс жасайды. Графикалық парақ (парақ, бет) - деп жедел жад аймағын айтады. Экранның сызбасын жасауға қолданады, яғни әрбір пикселдің реңгі (жарығын) туралы мәлімет сақтайды.
Graph модулін пайдаланып программалау
Graph модулінің жалпы сипаттамасы
Graph модулі IBM - типтес дербес компьютерлердің графикалық адаптерлерімен жұмыс істеуіне есептелінген, графикалық процедуралар мен функциялардың, тұрақтылардың, айнымалылар мен типтердің қуатты кітапханасы болып табылады. TurboPascal -7. 0 ортасын қолданатын Паскаль тілінде программалауда Graph модулінің 132 тұрақтысы, 7 қосымша типі, 2 айнымалысы, 57 процедурасы және 22 функциясы пайдаланылады.
TurboPascal - да графикалық драйверлер деп аталатын арнайы программалар (BGI - файлдар) видеоадаптерлерінің қалыпты жұмысын басқарады.
Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктерін өзгерте алатын бірнеше графикалық режимде жұмыс жасай алады. Мәтіндік режимде экранда 40(80) х 25 символ бейнелеуге болатын болса, графикалық режимде онда бейнеленетін ең кіші объект - графикалық нүкте - пиксел деп аталады.
Мысалы: көп қолданылатын VGA адаптерінің қалыпты режимінде экранда 640 х 480 пиксел көрінеді және олардың 16 түсін айыруға болады.
Uses Graph операторын программа басына орналастырғанда ғана Graph модулінің қызметін толық пайдалануға мүмкіндік бар.
InitGraph (Gd, Gm, ‘c:\TP7’) процедурасы дербес компьютерге қойылған видеоадаптерді автоматты түрде тауып, сәйкес графикалық драйверді іске қосады және оны графикалық режимге көшіреді.
Мұнда ‘c\TR7’ - драйвер файлына апаратын жол. Графикалық драйверді анықтау (Gd) және олардың жұмыс режимдерін қою (Gm) тұрақтылары (тәжірибеде жиі пайдалыланатын режимдер) төмендегі кестеде берілген:
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*x max +1,
ry= my* y max +1
шарттарын қанағаттандыруы тиіс (x max және y max декарт координаталарының ең үлкен мәндері) . Мысалы, кескінді экранның центріне орналастыру қажет болса
dx= rx div 2, dy=rydiv 2
деп аламыз.
Графикалық экран мен элементтердің параметрлерін қою процедуралары
Суреттің түсін анықтайды,
С:0-қара, 1-көк, 2-жасыл, 3-көгілдір, 4-қызыл, 5-қызғылт, -6-қоңыр, 7-ашық сұр, 8-қара сұр, 9-ашық көк, 10-ашық жасыл, 11-ашық көгілдір, 12-ашық қызыл, 13-ал қызыл, 14-сары, 15-ақ, 128-жыпылықтау.
Сызықтың типін және жуандығын анықтайды.
S: 0-тұтас, 1-нүктелік, 2-штрих-пунктирлі, 3-пунктирлі, 4-орынд. типі,
t: 0-қалыпты, 1-жуан
Толтыру стилің және оның түсін анықтайды.
S: 0-төсек түсімен толтыру,
1- берілген түспен толтыру,
П: Set Fill Pattern
(s:Fill Pattern Type, c:word)
Орындаушының толтыру стилің және оның түсің анықтайды, стандарт тип
FillPatternType=array(1. . 8) of byte
Белсенді беттің нөмерің анықтайды
С түсінің ренің өзгертеді
Барлық түс рендерін бірден өзгетеді
Графикалық элементтерді бейнелеу процедуралары.
Draw Poly (n: word;
M : array [1. . n] of Point Type)
n-бұрышты көпбұрыш сызады
M- жазбалар массиві: PointType=record
x, y:integer;
End
Мәтінді автоматты түрде жатық (x) және тік жол (y) бағыттарында қатарластырады x:0-сол жақтан, 1-ортадан, 2-оң жақтан;
y:0-төменнен, 1-ортадан, 2-жоғарыдан
N-бұрышты көп бұрышты толтырады
M- жазбалар массиві
PointType=record
x, y:integer;
end
Беткі жағы берілген тіктөртбұрыш болатын және D қалыңдығы бойынша паралеллипипед сызады.
top=true болса, онда оның жоғарғы жағы сызылады, top=false болса, сызылмайды
Графикалық экран мен элементтердің параметрлерің қою функциялары.
Турбо Паскалдың графикалық мүмкіндіктерің толық пайдалану арқылы төмендегі жұмыстарды атқаруға болады :
Екі өлшемді кескіндерді салу (жазық геометриялық фигуралар мен сызбалар, графиктер, диаграммалар, пиктограммалар, схемалар және т. б. ) ;
Үш өлшемді кескіндерді салу (кеңістік геометриялық фигуралар мен денелер, беттер, гистогрммалар, диаграммалар және т. б. ) ;
Динамикалық кескіндерді сплу (кескін проекциясын және қалпын өзгерту, анимациялау, көру эффектісін туғызу және т. б. ) ;
Әртүрлі ойын және оқыту программаларын жасақтау ;
Мысалы:
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, x2, y2) ; Rectangle (x1, y1, x2, y2) ;
Set Text Style (1, 0, 8) ; str (i, s) ;
If i < 10 then begin xt : = x-16; yt : = y-48; end;
Out Text XY (xt, yt, s) ;
Readln; Set Fill Style (1, 0) ; Bar (x1, y1, x2, y2) ;
End;
Close Graph; end.
3.
Program Prost 58;
Uses Graph;
Const n=5; r=200; h=10;
G : array [1. . n] of word = (12, 28, 34, 16, 10) ;
Var Gd, Gm, x, y, xt, yt, i : integer;
a1, a2, sum: word; a0:real; s: string ;
B : array [1. . n] of word;
Begin
Randomize; sum : = 0;
for i : = 1 to n do sum : = sum + G[i]
for i : =1 to n do B[i] : = Round (G[i] *360/sum) ;
Gd : = Detect; Init Graph (Gd, Gm, ‘c:\tp7’) ;
x : = Get Max X div 2; y : = Get Max Y div 2;
a1 : = 0; a2 : = B[1] ; Set Text Style (1, 0, 2) ; Set Color(15) ;
for i : = 1 to n do
Begin
Set Fill Style (Random(11) +1, Random(15) +1) ;
Pie Slice (x, y, a1, a2, r) ;
a0 : = (a1+ a2) * Pi/360;
xt : = Round (x + r* Cos (a0) * 0. 7) ; yt : = Round(y-r* Sin (a0) * 0. 7) ;
Str (G [i], s) ; Out Text XY (xt, yt, s) ;
a1 : = a1 + B [i] ; a2 : = a2 + B [i + 1] ; end;
Readln; Close Graph; end.
Program Post 59;
Uses Graph ;
Var Gd, Gm, x, y, ra, rb, i, k, m : integer;
Begin
Gd : = Detect; Init Graph (Gd, Gm, ‘c:\tp7’) ;
Randomize; x : = 320;
for i : =1 to 160 do
Begin
Set Color (Random(15) +1) ;
if i < = 80 then begin k : = i; m : = 400; end;
else begin k : = 160-i; m : = 244; end;
ra : = (k-1) * 3; rb : = k-1; y : = m-i;
Ellipse (x, y, 0, 360, ra, rb) ; end;
Readln; Close Graph; end.
8 x 8 шаршылы тақтада 3 ақ және 1 қара дойбы тастары орналасқан. Ақ тастар қозғалмайды деп алып, қара тастың жүрісін және жеу мүмкіндіктерін моделдеу.
Program prost;
Uses Graph, Crt;
Const c1=14; c2=6; s=9; h=60; x0=10; y0=0;
Var gd, Gm, pi, pj, c; integer; ch; char;
Procedure Desk;
Var i, j, x, y:integer;
Begin
For i:=1 to 8 do
Begin
y:=y0+(i-1) *h;
For j:=1 to 8 do
Begin
x:=x0+(i-1) *h;
if (i+j) mod 2 =0 then c:=c1 else C=c2;
SetFillStyle(c, s2) ; Bar(x, y, x+h, y+h) ; end;
end; end;
Procedure Heip;
Const s1=’-step’; s2=’-eat;
Var i, x, y, y1:integer; s, s0:string;
Procedure LfUp(px, py:integer) ;
Begin
Move To(px, py) ; LineRel(15, -15) ; LineRel(-10, 4) ;
MoveRel(-6, 6) ; LineRel(-4, -10) ; end;
Begin
x:=510; y1:=100; SetFillStyle(1, 7) ; SetTextStyle(1, 0, 2) ;
for i:=1 to 4 do
Begin
y:=y1(i-1) *40;
SetColor(8) ; Bar(x, y, x+30, y+30) ;
Rectangle(x, y, x+30, y+30) ;
SetColor(11) ; if i<3 then s0:=s1 else s0:=s2;
Str(i, s) ; OutTextXY(x+10, y+2, s+s0) ; end;
SetColor(7) ;
RgUp(630, 125) ; LfUp(615, 165) ; RgUp(620, 202) ;
LfUp(600, 242) ;
SetColor(11) ; OutTextXY(x, y1+160, ’Esc-‘) ;
SetColor(12) ;
OutTextXY(x+65, y1+160, ’exit‘) ; SetColor(7) ; end;
Procedure Paste(ip, jp, cp:integer) ;
Var x, y:integer; begin
x:=x0+(jp-1) *h+h div 2 ; y:=y0+(ip-1) *h+h div 2;
SetFillStyle(1, 0) ; FillEllipse(x, y, h div 3, h div 3) ;
SetFillStyle(1, cp) ; FillEllipse(x, y, 2*h div 7, 2*h div 7) ;
End;
Procedure Cut(ip, jp, :integer) ;
Var x, y:integer;
begin
x:=x0+(jp-1) *h; y:=y0+(ip-1) *h;
SetFillStyle(s, c2) ; Bar(x, y, x+h, y+h) ; end;
Function Fisch(ip, jp:integer) :Boolean;
Var x, y:integer;
begin
x:=x0+(jp-1) *h+h div 2 ; y:=y0+(ip-1) *h+h div 2;
if GetPixel(x, y) =15 then Fisch:=true else Fisch:=false;
end;
негізгі программа
begin
Gd:=Detect; InitGraph(Gd, Gm, ’c:\tp7’) ;
Desk; Help; pi:=6; pj:=3; Paste(pi, pj, 1) ;
Paste(3, 2, 15) ; Paste(3, 4, 15) ; Paste(3, 6, 15) ;
Repeat
ch:=ReadKey; if ch=#0 then ch:=ReadKey;
case ch of
# 49 : if (pi>1) and (pj>1) and (Fisch (pi-1, pj-1) = false) then begin Cut (pi, pj) ; dec (pi) ; dec (pj) ;
Paste (pi, pj, 1) ; end;
# 50 : if (pi>1) and (pj<8) and (Fisch (pi-1, pj+1) = false) then begin Cut (pi, pj) ; dec (pi) ; inc (pj) ;
Paste (pi, pj, 1) ; end;
# 51: if (pi>2) and (pj>2) and Fisch (pi-1, pj-1) = false) then begin Cut (pi, pj) ; dec (pi) ; dec (pj) ; Cut (pi, pj) ; dec (pi) ; dec (pj) ; Paste (pi, pj, 1) ;
end;
# 52: if (pi>2) and (pj<7) and Fisch (pi-1, pj+1) then begin Cut (pi, pj) ; dec (pi) ; inc (pj) ; Paste (pi, pj, 1) ;
end; end;
if pi = 1
then begin
Set Text Style (1, 0, 2) ; Set Color (14) ;
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz