Турбо паскаль программалау тілінде графикалық объекттерді құру



Кіріспе

1. Graph модулі

2. Координаттар, терезелер, беттер

3. Сызықтар мен нүктелер

4. Көпбұрыштар

5. Доғалар, шеңберлер, эллипстер

6. Түстер, палитралар, толтырулар

7. Суретті сақтау және шығару

8. Турбо Паскальдағы графика

9. Графикалық режимді қосу және өшіру

10. Қарапайым суреттерді құру

11. Тексттік ақпаратты шығару

Қорытынды

Қолданылған әдебиеттер тізімі
Берілген жұмыста Турбо Паскаль графикалық режимінде графикалық объекттерді көрсетуге арналған әр түрлі процедуралар мен функциялар қарастырылады.
Монитордың тексттік және графикалық жұмыс істеу режимдерінің айырмашылығы – ол визуалды ақпаратты шығаруды басқару мүмкіндіктері болып табылады. Тексттік режимде экранда көрсетілетін минималды объект – ол алфавиттік-сандық немесе қандай да бір символ болып табылады. Жай жағдайларда алфавитті-сандық режимде жұмыс істеп тұрған монитордың экранында көлденеңінен саны 80-нен аспайтын символдар, ал тігінен саны 25-тен аспайтын символдарболуы мүмкін, яғни, небары 2000 визуалды объекттер. Сондай-ақ, символдарды басқаруда түстер беру жағынан кейбір шектеулер бар. Әрине, мұндай режимде экранға әр түрлі қарпайым тексттермен қатар графикалық суреттерді де шығаруға болады, алайда ол суреттердің түстері анық болмайтындығы түсінікті. Дегенмен, компьютерлік эраның алғашқы кезеңдерінде бұл тәсіл жалғыз болған, сондықтан да ол экранға графиктерді және суреттерді шығарудың ең әйгілі түрі болған(және баспаға шығару). Кейде программистер «копьютерлік псевдографиканың» нағыз туындысын жасайтын болған. Бірақ суреттермен күрделі жұмыстар жасау үшін дисплейдің тексттік режимі пайдалануға келмейді.
Графикалық режимде программистің минималды объектті шығару үшін қолдана алатын бірлігі пиксел болып табылады(ағылшынның «сурет» (picture) және «элемент» (element) сөздерінің бірігуінен пайда болған). Символмен салыстырғанда пикселдің өлшемі аз боллып табылады(тексттік режимде бірнеше пиксел бірігіп бір символды құрайды). Оның геометриялық өлшемдері монитордың шектеулері арқылы анықталады. Монитордың шектеулері rx*ry түрінде беріледі, мұндағы rx – экрандағы пикселдердің көлденеңінен орналасқан саны, ал ry – пикселдердің тігінен орналасқан саны. Практикада туынды шектеулер емес, керісінше шектеулердің белгілі мәндері қолданылады. Мысалы, 320*200, 640*480, 800*600, 1024*768, 1280*1024 және т.б.

Тақырыбы:Турбо Паскаль программалау тілінде

графикалық объекттерді құру

М а з м ұ н ы:

Кіріспе

1. Graph модулі

2. Координаттар, терезелер, беттер

3. Сызықтар мен нүктелер

4. Көпбұрыштар

5. Доғалар, шеңберлер, эллипстер

6. Түстер, палитралар, толтырулар

7. Суретті сақтау және шығару

8. Турбо Паскальдағы графика

9. Графикалық режимді қосу және өшіру

10. Қарапайым суреттерді құру

11. Тексттік ақпаратты шығару

Қорытынды

Қолданылған әдебиеттер тізімі

Кіріспе

Берілген жұмыста Турбо Паскаль графикалық режимінде графикалық
объекттерді көрсетуге арналған әр түрлі процедуралар мен функциялар
қарастырылады.
Монитордың тексттік және графикалық жұмыс істеу режимдерінің
айырмашылығы – ол визуалды ақпаратты шығаруды басқару мүмкіндіктері болып
табылады. Тексттік режимде экранда көрсетілетін минималды объект – ол
алфавиттік-сандық немесе қандай да бір символ болып табылады. Жай
жағдайларда алфавитті-сандық режимде жұмыс істеп тұрған монитордың
экранында көлденеңінен саны 80-нен аспайтын символдар, ал тігінен саны 25-
тен аспайтын символдарболуы мүмкін, яғни, небары 2000 визуалды объекттер.
Сондай-ақ, символдарды басқаруда түстер беру жағынан кейбір шектеулер бар.
Әрине, мұндай режимде экранға әр түрлі қарпайым тексттермен қатар
графикалық суреттерді де шығаруға болады, алайда ол суреттердің түстері
анық болмайтындығы түсінікті. Дегенмен, компьютерлік эраның алғашқы
кезеңдерінде бұл тәсіл жалғыз болған, сондықтан да ол экранға графиктерді
және суреттерді шығарудың ең әйгілі түрі болған(және баспаға шығару). Кейде
программистер копьютерлік псевдографиканың нағыз туындысын жасайтын
болған. Бірақ суреттермен күрделі жұмыстар жасау үшін дисплейдің тексттік
режимі пайдалануға келмейді.
Графикалық режимде программистің минималды объектті шығару үшін қолдана
алатын бірлігі пиксел болып табылады(ағылшынның сурет (picture) және
элемент (element) сөздерінің бірігуінен пайда болған). Символмен
салыстырғанда пикселдің өлшемі аз боллып табылады(тексттік режимде бірнеше
пиксел бірігіп бір символды құрайды). Оның геометриялық өлшемдері
монитордың шектеулері арқылы анықталады. Монитордың шектеулері rx*ry
түрінде беріледі, мұндағы rx – экрандағы пикселдердің көлденеңінен
орналасқан саны, ал ry – пикселдердің тігінен орналасқан саны. Практикада
туынды шектеулер емес, керісінше шектеулердің белгілі мәндері қолданылады.
Мысалы, 320*200, 640*480, 800*600, 1024*768, 1280*1024 және т.б.

3
1. Graph модулі
Турбо паскальдың Graph модулінің құрамында әр түрлі графикалық экранмен
жұмыс істеуге арналған процедуралар мен функциялар бар. Сондай-ақ
графикалық программада қолданылуы мүмкін кейбір енгізілген константалар
бар. Graph-тің барлық мүмкіндіктерін пайдалану үшін программаның басында
Uses Graph операторын орналастыру керек.
Модульдің негізгі бөлігін нүктелер, кесінділер, доғалар және бүтін
шеңберлер секілді базалық графикалық элементтерді енгізу процедуралары
құрайды.
GraphErrorMsg функциясы қатенің көрсетілген коды бойынша сәйкес тексттік
ақпарат беретін String типінің мәнін қайтарады. Бас тақырып:
Fanctional GraphErrorMsg (Code: Integer): String ;
Мұндағы Code – ол GraphResult функциясының қайтаратын қателері.
ClouseGraph функциясы графикалық режимде адаптердің жұмысын аяқтайды
және экранның тексттік жұмыс істеу режимін қалпына келтіреді.

2. Координаттар, терезелер, беттер
Кез-келген сурет қарапайым геометриялық фигуралардан құралады. Олар-
нүктелер, түзулердің кесінділері, шеңберлер және т.б. Геометриядан белгілі
болғандай, геометриялық объект пен оның пішіні оның координаттық
нүктелерімен беріледі.
Яғни, графикалық нәтижені программалау үшін графикалық объекттердің
координаталарын көрсетуді үйрену керек.
Көптеген графикалық процедуралар мен функциялар (тексттік курсорға
қарағанда) экрандағы позицияны көрсететін көрінбейтін нұсқауды қолданады.
Бұл нұсқаудың орналасуы экрандағы кез-келген координата секілді сол жақ
жоғарғы бұрышқа сәйкес беріледі(оның координаты 0,0). Сонымен, экранның
көлденең координатасы содан оңға қарай, ал тік координатасы жоғарыдан
астыға қарай үлкейеді.
GetMaxX және GetMaxY функциясы жұмыс істеудің ағымдағы (сәйкесінше
көлденеңінен және тігінен) режиміндегі экранның максималды координаталары
бар Word типінің мәнін қайтарады.
SetViewPort процедурасы графикалық экранда тік бұрышты терезе құрады.
Бас тақырыбы:
Procedure SetViewPort(Х1,У1,Х2,У2:Integer; ClipOn: Boolean);
Мұндағы Х1...У2 – ол сол жақ жоғарғы (Х1,У1) және оң жақ төменгі (У1,У2)
терезенің бұрыштарының координаталары; ClipOn –ол суреттер элементтерінің
терезесіне сыймай тұрған кемшіліктерді анықтайтын Boolean типті амал.
ClearDevice процедурасы графикалық экранды тазартады. Процедураға сілтеу
жасалғаннан кейін, меңзер сол жақ жоғарғы бұрышқа

4
орналастырылады, ал экранның өзі SetBkColor процедурасы арқылы берілген
түспен толтырылады.

3. Сызықтар мен нүктелер
PutPixel процедурасы берілген координаттар бойынша нүктені берілген түсі
бойынша шығарады. Бас тақырыбы:
Procedure PutPixel (Х,У: Integer; Color: word);
Мұндағы Х,У – ол нүктенің координаталары; Color – нүктенің түсі.
Line поцедурасы басы мен аяғының координаталары берілген түзу сызады.
Бас тақырыбы:
Procedure Line (Х1,У1,Х2,У2: Integer);
Мұндағы Х1...У2 – сызықтың басы (Х1,У1) мен соңының (Х2,У2)
координаталары. Сызық ағымдағы стиль және түс бойынша сызылады.
SetLineStyle поцедурасы сызылатын сызықтардың жаңа стилін орнатады. Бас
тақырыбы:
Procedure SetLineStyle (Type, Pattern, Thick: Word);
Мұндағы Type, Pattern, Thick – ол сәйкесінше сызықтың типі, үлгісі және
қалыңдығы.Сызықтың типін төмендегідей константалар арқылы жасауға болады:
Const
SolidLn =0;(түзу сызық)
DottedLn=1; (нүктелік сызық)
CenterLn =2;(штрих-пунктирлі сызық)
DashedLn =3;(пунктирлі сызық)
UserBitLn =4;(қолданушының өзі таңдайтын сызықтың суреті)

4. Көпбұрыштар
Recstangle процедурасы бұрыштарының координаталары көрсетілген тікбұрыш
сызады. Бас тақырыбы:
Procedure Recstangle (Х1,У1,Х2,У2: Integer);
Мұндағы Х1...У2 – ол тікбұрыштың сол жақ жоғарғы (Х1,У1) және оң жақ
төменгі (У1,У2) бұрыштарының координаталары. Тікбұрыш ағымдағы стиль және
түс бойынша сызылады.

5. Доғалар, шеңберлер, эллипстер
Circle процедурасы шеңбер сызады. Бас тақырыбы:
Procedure Circle (Х, У: Integer; R: Word);
Мұндағы Х, У – ол центрдің координаталары; R – пикселмен берілген радиус.
Шеңбер ағымдағы түспен шығарылады. Сызықтың қалыңдығы ағымдағы стилмен
айқындалады, сызықтың түрі әрқашанда SolidLn (түзу).

5
Процедура дұрыс еңберді радиустың сызықтық өлшемінің өзгеруіне байланысты
(графикалық экранның қабырғаларына қатысты бағытталуы бойынша)сызады, яғни
GetAspectRatio коэффициентін ескере отырып.
Arc процедурасы шеңбердің доғасын сызады. Бас тақырыбы:
Procedure Arc (Х, У: Integer; BegA, EndA, R: Word);
Мұндағы Х, У – ол центрдің координаталары; BegA, EndA – сәйкесінше доғаның
бастапқы және соңғы бұрыштары; R – пикселмен берілген радиус.
Бұрыштар сағат тіліне қарсы суреттеледі және градуспен беріледі. Нөлдік
бұрыш вектордың солдан оңға қарай көлденең бағытына сәйкес келеді. Егер
бастапқы бұрыштың мәнін 0 деп, ал соңғы бұрыштың мәнін 359 деп көрсетсе,
онда толық шеңбер сызылады. Шеңбердің доғасын сызу барысында Circle
процедурасында сызықтың радиусына қатысты айтылған ережелер сақталады.
Ellipse процедурасы эллипстік доға сызады. Бас тақырыбы:
Procedure Ellipse (Х, У: Integer; BegA, EndA, Rx, Ry: Word);
Мұндағы Х, У – ол центрдің координаталары; BegA, EndA – сәйкесінше доғаның
бастапқы және соңғы бұрыштары; Rx, Ry – эллипстің пикселмен берілген
көлденең және тік радиустары.
Эллипстің доғасын сызу барысында Circle процедурасында сызықтың
радиусына қатысты айтылған ережелер сақталады және бұрыштарға қатысты Arc
процедурасындағы ережелер сақталады. Егер радиустарды GetAspectRatio –ің
масштабты коэффициентін ескеріп сәйкестендіретін болсақ, онда дұрыс шеңбер
сызуға болады.

6. Түстер, палитралар, толтырулар
SetColor процедурасы енгізілетін сызықтар мен символдардың ағымдағы
түсін орнатады. Бас тақырыбы:
Procedure SetColor (Color: Word);
Мұндағы Color – ол фонның түсі.
Фонның түсі тек қана қоңыр болатын тексттік режимге қарағанда, графикалық
режимде ол түс кез-келген бола алады. Фонның жаңа түсін орнату сол мезетте
графикалық экранның түсін өзгертеді. Бұл дегеніміз, суреттің екі түрлі
бөлігіне әр түрлі түс беруге болмайды деген сөз. Жоғары рұқсаты бар
режимдегі GGA адаптеры үшін фонның түсін өзгерту кезінде ағымдағы қызмет
етуші пикселдердің түсі де өзгереді. Ескере кетсек, фонның түсін 0-ден
(Black) өзгеше түске өзгертсек, онда бұдан былай қара түсті пайдалана
алмайтын боламыз. Ол біздің бұдан былай фонға қара түсті бере
алмайтындығымызды білдіреді.
Егер де сіздің ПК-ңіз түрлі-түсті экранмен жабдықталған болса, онда
келесі программа SetBkColor процедурасының жұмысын көрсетеді. Программадан
шығу үшін кез-келген тетікті басу ғана жеткілікті.
SetFillStile процедурасы стильді (тип және түс) орнатады. Бас тақырыбы:

6
Procedure SetFillStile (Fill, Color: Word);
Мұндағы Fill – толтырудың типі; Color- толтырудың түсі.
FloodFill процедурасы толтырудың ағымдағы стилін пайдалану арқылы бүтін
фигураны толтырады. Бас тақырыбы:
Procedure FloodFill (Х, У: Integer; Border: Word);
Мұндағы Х, У – ол бүтін фигураның ішіндегі кез-келген нүктенің
координаталары. Егер фигура бүтін болмаса, онда толтыру бүкіл экранға
төгіледі.

7. Суретті сақтау және шығару
Image Size функциясы суреттің тік бұрышты фрагментін орналастыру үшін
қажетті жадының өлшемін береді (байт түрінде). Бас тақырыбы:
Function Image Size (Х1,У1, Х2, У2: Integer) :Word;
Мұндағы Х1...У2 – ол сурет фрагментінің сол жақ жоғарғы (Х1,У1) және оң
жақ төменгі (У1,У2) бұрыштарының координаталары.
GetImage процедурасы сурет фрагментінің тік бұрышты көшірмесін жадыға
орналастырады. Бас тақырыбы:
Procedure GetImage (Х1,У1, Х2, У2: Integer; var Buf);
Мұндағы Х1...У2 – ол сурет фрагментінің сол жақ жоғарғы (Х1,У1) және оң
жақ төменгі (У1,У2) бұрыштарының координаталары; Buf – суреттің фрагменті
көшірілетін алаңның орны.
Buf өлшемі Image Size функциясының Х1...У2 координаталарымен қайтаратын
мәнінен аз болмауы керек.
PutImage процедурасы бұрынырақ GetImage процедурасының жадыға орналастырған
суреттің фрагментін экранның берілген бөлігіне шығарады. Бас тақырыбы:
Procedure PutImage (Х, У: Integer; var Buf; Mode: Word);
Мұндағы Х, У – ол сурет фрагментінің экрандағы болашақ орнының координаты;
Buf – суреттің алынатын орнының айнымалысы; Mode – көшірме жасау тәсілі.
Көріп отырғанымыздай, төменгі оң жақ бұрыштың координаталары
көрсетілмейді, өйткені ол толығымен экранға көшірілетін фрагменттің
көшірмесімен анықталады. Сол жақ жоғарғы бұрыштың координаталарының өлшемі
маңызды емес, тек қана көшірелетін сурет экранға сыятын болса болғаны.

8. Турбо Паскальдағы графика
Өзімізге таныс тексттік экранға қарағанда графикалық режимдегі терезе
көптеген нүктелерге бөлінген және сол нүктелердің әрқайсысының өзіндік
белгілі бір түсі бар болуы мүмкін. Нүктелердің барлығы бірдей және тік
бұрышты болып саналады, олардың барлығы экранда орналасқан, яғни әрбір
нүктенің қай жолда орналасқандығын көрсетуге болады.

7
Графикалық режимде бағандар мен жолдардың нөмірлері нүктелердің
координаталары ретінде қолданылады, яғни координаттар әрқашанда ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Турбо Паскаль тілінде бағдарламаларды құрастырудың тәселдері
Бағдарламалау тілдерінің өркениеті
Turbo Pascal жүйесіндегі графиканы ұйымдастыру технологиясы
Паскаль тіліндегі модульдер
Шашка ойынын Паскаль программалау тілінде құру
Объектілі бағдарланған программалау
Turbo Pascal жүйесінде процедураларды ұйымдастыру технологиясы
Turbo pascal программалау тілі туралы
Turbo Pascal бағдарламасындағы графикалық режим
Turbo Pascal жүйесінде жолдарды ұйымдастыру технологиясы
Пәндер