Курстық жұмыс: Бағдарламалау | Турбо Паскаль жүйесіндегі графика. Жұмыс істеп тұрған бағдаршамның бейнесін шығару
Мазмұны
КІРІСПЕПаскаль тіліндегі графика 3
І НЕГІЗГІ БӨЛІМ
1.1 Дисплей экранының графикалық режимі 4
1.2 Графикалық режиміндегі палитра 5
1.3 Graph модулі 8
1.4 Графикалық режимді басқару командалары 16
1.5 Графикалық экранға нүкте, кескінді шығару 18
ІІ ЕСЕПТІҢ ҚОЙЫЛЫМЫ
2.1 Есептің берілгені 19
2.2 Есептің алгоритімі 20
2.3 Программалау бөлім 21
2.4 Программа жауабы 22
ІІІ ҚОРЫТЫНДЫ
IV ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ТІЗІМІ
КІРІСПЕ
Паскаль тіліндегі графика
Қазіргі дербес компьютерлердің графикалық информацияларды енгізу, шығару және өңдеуге арналған техникалық құрылғылары бар.
Turbo Pascal жүйесінде графикалық информациялармен жұмыс істеу үшін GRAPH.TPU модулі пайдаланылады. Бұл модульде графикалық процедуралар мен функциялардың программасы машиналық тілде жазылған.
Turbo Pascal графикасын көбінесе псевдо-графика деп атайды, өйткені тілдің өзінде графикалық командалары келтірілмеген. GRAPH модулінде графикалық информацияларды дисплей экранына шығаруға және өңдеуге арналған командалары сүйемелдейтін типтер, тұрақтылар, айнымалылар, процедуралар мен фукциялар сипатталады.
GRAPH модулі ІВМ – типтес дербес компьютерлердің графикалық адаптерлерімен жұмыс жасауға есептелінген, графикалық процедуралар мен функциялардың, тұрақтылардың, айнымалылар мен типтердің қуатты кітапханасы болып табылады. Pascal тілінде программалауда GRAPH модулінің 132 тұрақтысы, 7 қосымша типі, 2 айнымалысы, 57 процедурасы мен 22 функциялары пайдаланылады.
GRAPH модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады.
Графикалық режимді іске қосу:
InitGraph (Var Driver, Mode: integer; Path: string);
Мұндағы Driver – графикалық режимді анықтайтын параметр;
Mode – орнатылған драйверге байланыста берілетін графиктік режим параметрі;
Path – графиктік драйвер файылының атауы және жолы.
Driver мәні GRAPH модулінде хабарланған тұрақтылар жиынымен шектеледі.
Тұрақтылар атауы Сандық коды
Detect 0
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMono 5
IBM8514 6
HercMono 7
ATT400 8
VGA 9
PC3270 10
І НЕГІЗГІ БӨЛІМ
1.1 Дисплей экранының графикалық режимі
Әдеттте дисплей экраны eкi режимде болады: тeкcттiк және графuктiк.
Eкi режимде де пиксель деп аталатын дисплей экраныньң физикальқ нүктелерi пайдаланылады. Графикалық режимде графикальқ нүктелердiң өзiнiң "координаталар жүйесi" енгiзiледi.
Экрандағы графикальқ бейне графикальқ экранының буферiнiң күйiне байланысты графикальқ нүктелерiнiң жарьқталуынан құралады. Экpaн буферi дегенiмiз - бұл графикальқ экранда әрбiр пиксельдiң жарьқталыну түci мен белгiсi кодталған оперативтi жадының бөлігі. Пайдаланылған графикальқ экранньң режимiне, дисплейдiң типiне және жадыньщ көлемiне тәуелдi графикальқ экран үшiн бiр немесе бiрнеше буфер ұйымдастырылуы мүмкің. Мұндай буферлер графикалық экрандьқ беттер деп аталады. Дербес жағдайда, физикальқ экран тек бiр ғaнa бетпен байланысты болуы мү мүкін. Графикалық информацияны сол мезетте шығаруға бағытталған буфер активтi бет (буфер) деп аталады.
Визуалды, көрінетін бет (буфер) деп сол мезетте физикальқ экранмен байланысты буфердi айтамыз. Активтi және визуалды беттердiң әртүрлi буферлерi болуы мүмкін. Активтi бет визуалдьқ бет деп аталады. Дәлiрек айтсақ бет дегенiмiз - экранньң графикалық информациясы, ал буфер -¬осы информацияны кодталған күiнде сақтайтын жады бөлігі.
Тексттiк экран сияқты графикалық экранның да курсоры болады. Графикалық курсордың текстік курсордан айырмашылығы графикалық курсор барльқ yaқыттa көрiнбейдi. Графикалық курсор соңғы шығарылған нүктеден кейiнгi нуктеде орналасады. Ол GRAPH модулiнiң кейбiр функцияларында пайдаланылады.
Графикалық экран режимiнiң сипаттамалары
Графикалық режимнiң төмендегідей сипаттамалары бар: мүмкiндігі (расшерение), палитра (бояу), фонның түci, шығарылатын графикалық нүктенің түci, оперативтi жадыдағы графикалық экрандық беттердiң мөлшері.
Бұл сипаттамалар, eң алдымен, дисплейдiң техникалық типiмен жүйеден графикалық режимге бөлiнген видеожадының көлемiне тәуелдi. Дисплей экранының жұмысын басқаратын техникалық құрылғы адаптер деп аталады.
Экранның графикалық режимiнiң мүмкiндiгi
Экранның графикалық режимiнiң мүмкiндiгi экрандағы Х, у oci бойынша орналасатын графикалық нуктелердiң мөлшерiмен анықталады. Ең жоғарғы мүмкiндiк бip графикалық нүктеге бiрнеше пиксель пайдаланылса, онда мүмкiндiк төмендегiдей болады. Сонымен, графикалық нүктеге пиксель қаншалықты көп пайдаланылса, соншалықты экранның графикалық мүкiндiгi төмен болады. Әдетте, бip нүктеге бip пиксельден келетiн жоғары мүмкiндiктi режим пайдаланылады.
Графикалық экранның мүмкiндiгi дегенiмiз - бұл экранға шығарылатын 6ейненiң дәлдiгi. Мысалы, экранға графикалық бейнелердi шығару мүмкiндiгi қаншалықты жоғары болса, функциялардың графигiн соншалықты дәл тұрғызуға болады.
1.2 Графикалық режимдегi палитра
Палитра (бояулар) дегенiмiз - бұл графикалық режимге арналған түстер жиынтығы. Режимге арналған бiрнеше палитралар бар, бipaқ әдетте стандартты 16 түс пайдаланылады (егер адаптер EGA немесе VGA болса).
Black - 0 - қapa Dark Gray -8 - қapa-cұр
Blue - 1 – көк Light Blue -9 - ашық көк
Green - 2 - жасыл Light green -10 - ашық жасыл
Cegan - 3 – көгiлдiр Light Cegan -11- ашық көгiлдiр
Red - 4 - қызыл Light Red -12 – ашық қызыл
Magenta - 5 - күлгiн Light Magenta -13 – таң қурай түс
Brown - 6 - қоңыр Уellow -14 -сары
Light Gray - 7 – ақ-сұр White -15 - ақ
Кестеде келтiрiлген түстердiң ағылшынша атауларының нөмерлерi GRAPH модулi үшiн тұрақты (константа) болып есептеледi. Алғашқы 8 түсті (0 ... 7) фонның түci үшiн де, шығару түci үшiн де пайдалануға болады, ал қалған түстер (8...15) тек графикалық бейнелердi шығару үшiн ғана пайдаланылады.
Экрандық беттер мөлшерi
Экрандық режимнiң графикалық экрандық беттерге арналған бip немесе бiрнеше буферi болады. '
Ең жоғарғы мүмкiндiктi режимде тек бip ғана графикалық экрандық бет болады, яғни оны кодтау үшiн үлкен жады көлемiн қажет етедi. Сөйтiп х oci бойынша 640 нүкте, у oci бойынша 480 нүкте және 16 түстi бояу палитрасы графикалық бетке арналған буфер жадыдан 16 Кбайт орын алады.
Экрандық бет графикалық режимде экранға шығару буферiнде кодталады. Онда экранның барлық графикалық нүктелерiнiң ағымдағы күйi
сипатталады. Нүктенiң күйi оның жану бегiсiмен және шығаруға арналған түстiң нөмерімен кодталады. Егер белгi нольге тең болса, онда барльқ пиксельдер фонның түсімен жарықталған. Егер белгi l-ге тең болса, онда ол шығару түсiнiң нөмepiмен жарьқталған графикалық бейнелердi шығаруда драйвер белгi мен шығару түciн буфердегi экранның активтi бетiнiң сәйкес нүктелерiнiң байтына жазады. Егер режимнiң бiрнеше экрандық бетi болатын болса, онда бейненi шығаратын бiр бетi активтi, ал қалған беттердi визуалды жасауға болады.
GRAPH модулiнде беттердi басқару үшін екі процедура
пайдаланылады:
SETACTIVPAGE () - беттi активтi жасауға арналған. SETVISUALPAGE () - беттi визуалдандыруға арналған. Сонымен, режимдердiң өлшемдерi мен сипаттамалары дисплеймен, оньң
адаптерiмен анықталады. GRAPH модулi режимде шыққан барлық дисплей адаптерлерiнiң жұмысын сүемелдей алады.
VGA адаптерiнiң режимi үшiн қысқаша нұсқаy:
VGALo =0 - VGA-ғa арналған ең төменгі мүмкiндiктi графика (640•200 нүкте, 16 түс, 4 бет);
VGAМED=l - VGA-ғa арналған орташа мүмкiндiктi графика (640•350 нүкте, 16 түс, 2 бет);
VGAH:=2 - VGA-ғa жоғары мүмкiндiктi графика (640•480 нүкте, 16 түс,
1 бет);
Графикалық режимдi тағайындау және одан шығу
Жалпы алғанда, компьютерде негiзгi eкi экран режимінің жұмыcы-символдық және графикалық экран режимдерi пайдаланылады. Компьютердi қосып, Турбо Паскаль жүйесiн шақырғанда тексттiк режим түрiнде iстейдi. Графикалық режимдi алу үшiн GRAPH.TPU модулiн (Uses GRAPH - пен бiрге) қосып, керекті графикалық режим INITGRAPH процедурасымен инициализация жасалуы қажет. Режимдi инициализациялау дегенiмiз ¬дисплей адаптерiнiң жұмысын берiлген графикалық режимнiң күйiне келтіру, яғни физикалық экранды режимнiң жұмысынa көшiру. Осы режимдi тағайындағаннан кейiн GRAPH модулiнiң барлық командаларын пайдалануға болады.
Графикалық режимнен шығу үшiн Closegraph процедурасы пайдаланылады. Графикалық режимді инициализациялау INITGRAPH (, , ) операторымен орындалады; мұдағы - графикалық драйверге арналған integer типтi айнымалы; - адаптердiң жұмыс режимiне арналған integer типтi айнымалы (тағайындалатын графикалық режимнiң номеpi); - графикалық драйвердiң файлына баратын жолды көрсететін string типтi өрнек.
INITGRAPH (DRIVER, MODE, 'С:\ВР\ВGI'); - модуль жұмысын нақтылау (инициировать). Бұл жоғарыда айтылғанньң көрінісі. Мұндағы DRIVER - видеоадаптердiң графикалық драйвердiң типiн орнату параметрi; MODE - оның жұмыс iстеy режимiн беру; 'C:\BP\BGІ' - *. BGI графакилық драйверлер орналасқан каталогқа сiлтеме жолы. BGI
Еекерту.
1. Драйвердiң типi адаптердiң типiне сәйкес келуi тиiс.
2. Драйвердiң параметрi әдетте deteсt функцияеымен берiледi; - яғни драйвердi автоматты түрде анықтау, - оны GRAPH модулінің тұрақтысымен беруге болады, мысалы, VGA немеее 9. Deteet функциясын пайдаланғанда жоғары мүмкiндiктi режим тағайындалады.
3. Егер драйвер сол қалыпта тұpaтын болса, Паскаль жүйесiнiң файлдары орналасқан каталогта болса, онда бос жол деп, яғни ‘ ’ – 2 апоcтрофпен көрсетуге болады.
Графикалық драйверлердi анықтау және олардың жұмыс режимдерiн қою тұрақтылары (тәжiрибеде жиi пайдаланатын режимдер) төмендегi кестеде толық берiлген:
DRIVER MODE
Deteet =0 EGALo =0 {640х200; 16 түс; 4 бет}
CGA =1 EGAНi =1 {640х350; 16 түс; 2 бет}
MCGA =2 EGA64Lo =0 {640х200; 16 түс; 1 бет}
EGA =3 EGA64Hi =1 {640х350; 4 түс; 1 бет}
EGA64 =4 EGAМonoHi =3 {640х350; 64К : 1 бет; 256К : 2 бет}
EGAMono=5 VGALo =0 {640х200; 16 түс; 4 бет} .
IBM8514 =6 VGAMed =1 {640х350; 16 түс; 2 бет}
HereMono=7 VGAHi =2 {640х480; 16 түс; 1 бет}
Att400 =8 PC3270Hi =0 {720х350; 1 бет}
VGA =9 IBM8514Lo =0 {640х480; 256 түс }
РС3270 =10 VGA8514Hi =1 {1024х768; 256 түс }
Графикалық режимінің тағайындалу нәтижесi екi функция модулінің мәндерiнен көрiнедi GRAРНrеsult: integer, аргументсiз инициализация нәтижесінің коды үшiн және GRAPHerror ( ): string – инициализация қатесінің; есебебiн ағылшын тiлiнде хабарлау үшiн.
GRAPНresults функциясы кез-келген функция немесе процедура модульдерiнiң орындалуындағы қатенің кодын бередi. Код мiндерi: 0...14. егер код нольге тең болса, онда орындалуда қате жоқ, GRAPНresult=0 графикалық режимiнiң дұрыс тағайындалғанын көрсетедi, яғни қатесiз тағайындау; Ал егер GRAPНresult < > 0 мәнін қабылдаса, мысалы, код - 3 - BGI графикалық драйверiнiң табылмағанын көрсетедi.
Программада инициализация (нақтылау үшiн) жасау үшiн мынадай операторлар мен сөйлемдердi жазу қажет.
USES GRAPH CRT;
Var driver, regim, error: integer; S:char;
driver:=detect;
INITGRAPH( driver, regim, ‘’); error:=Graphresult;
if error < >0 then
begin
wгitеlп('Графикалық режимде қате бар!'); writeln('tokta!');
s:=readkey
end;
Графuкалық режимде жұмыс icтey программасы
PROGRAM ROBA; USES GRAPH;
VAR DRIVER, MODE _ : INTEGER; BEGIN
DRIVER:=DETECT;
INITGRAPH (DRIVER, MODE, 'C:/BP/ВGI');
CLOSEGRAPH
END.
1.3 Graph модулi
Turbo Pascal программалау тiлiнде символдык режимнен бөлек графиктiк режимде жұмыс iстеуге болады. Онда әртүрлi графиктiк кескiндер кұрастыру мумкiндiгi бар. Turbo Pascal графиктiк мумкiндiктеркiн пайдалану үшiн арнайы “GRAPH” кiтапханасы iске қосылады. GRAPH модулiнiн графиктiк процеду-раларыменен функцияларын қолданып графиктiк кесiндердi құрастыруга болады. GRAPH модулiнде орналаскан процедуралар мен функцияларды пайдалану үшiн программанын сипаттау болiмiнде көрсетiледi:
USES GRAPH.
Turbo Pascal-7.0 ортасын қолданатын Паскаль тiлiнде программалауда Graph модулiнiн 132 турактысы, 7 қосымша типi, 2 айнымалысы, 57 процедурасы және 22 функциясы пайдаланылады.
Графиктермен жұмыс iстеу алдында оған сәикес келетiн монитор режимiн орнату қажет. Турбо Паскаль тiлiнде алдын ала бекiтiлген драйверлер саны бар. Олардын әрқайсысы үш турлi режимдердiн бiрiнде жүмыс iстей алады. Драйвер типi мен оның режимi санмен немесе түракты түрiнде берiлген:
Драйверлер Видеоадаптерлер
CGA.DGI CGA, MCGA
EGAVGA.DGI EGA, VGA
HERC.BGI Hercules (монохромды)
ATT.BGI AT&T 6300 (400 жол)
PC3270.BGI 3270 PC
IBM8514.BGI IBM-8514
GRAPH модулi iске қосылысымен оның iшiндегi процедуралар мен функцияларды пайдалана беруге болады.
Графикалык режимдi iске косу:
InitGraph (Var Driver, Mode: integer; Path: string); мунда Driver – графикалық режимдi анықтайтын параметр;
Mode – орнатылған драйвер файлының атауы және жолы.
Driver мәнi Graph модулiнде хабарланған тұрақтылар жиынымен шектеледi.
Көптеген видеоадаптерлер монитордың көрсету мүмкiндiктерiн өзгерте алатын бiрнеше графикалық режимде жұмыс жасай алады. Мәтiндiк режимде экранда 40(80) х 25 символ бейнелеуге болатын болса, графикалық режимде онда бейнеленетiн ең кiшi объект – графикалық нүкте – пиксел деп аталынады. Мысалы: көп қолданылатын VGA адаптерiнiң қалыпты режимiнде экранда 640 х 480 пиксел көрiнедi және олардың 16 тусiн айыруға болады.
Uses Graph операторын программа басына орналастырғанда ғана Graph модулiнiң қызметiн толық пайдалануға мүмкiндiк бар.
InitGraph(Gd,Gm,’c:\ TP7’) процедурасы дербес компьютерге қойылған видеоадаптердi автоматты түрде тауып, сәйкес графикалық драйвердi iске қосады және оны графикалық режимге көшiредi.
Мүнда ‘с:\ТР7- драйвер файлына апаратын жол. Графикалық драйверлердi анықтау (Gd) және олардың жұмыс режимдерiн қою(Gm) түрактылары төмендегi кестеде берiлген:
Gd Gm
Detect =0 EGALo =0 {640 x 200; 16 ; 4}
CGA =1 EGAHi =1 {640 x 350; 16 ; 2 }
MCGA =2 EGA64Lo =0 {640 x 200; 16 ;1 }
EGA =3 EGA64Hi =1 {640 x 350; 4 ; 1 }
EGA64 =4 EGAMonoHi =3 {640 x 350; 64K: 1 ; 25K:2 }
EGAMono =5 VGALo =0 {640 x 200; 16 ; 4 }
IBM8514 =6 VGAMed =1 {640 x 350; 16 ; 2 }
HercMono =7 VGAHi =2 {640 x 480; 16 ;1 }
ATT400 =8 PC3270Hi =0 {720 x 350; 1 }
VGA =9 IBM8514Lo =0 {640 x 480; 256 }
PC3270 =10 IBM8514Hi =1 {1024 x 768; 256 }
GraphResult функциясының нөлден өзге мәнi ( қателiк коды) режимге көшу қателiгiн көрсетедi.
CloseGraph процедурасы графикалық драйвердi жадтан шығарып, видеоадаптердiң мәтiндiк режимiн қалпына келтiредi.
Графикалық координаталар жүйесi
Графикалық координаталар экрандағы нуктенiң (пикселдің) орнын анықтайды. Графикалық координаталар ретiнде пикселдердiң реттiк нөмiрi алынады. Мысалы: 640 ч 480 режимiнде х , у координатаслары 0>=X >= 639, 0>=y >=479 аралыкта болады. Х координатасынын маны онга, ал у координатасынын манi
томен караи оседi. х , у шектеулi бүтiн мәндердi ғана қабылдайды.
Нүетенi экранға бейнелеу үшiн оның декарттық (х,у) координаталарын графикалық (х ,у ) координаталарға
Х = mx * x + dx
Y = ry – my * y –dy
Формулаларын қолданып түрлендiруге болады. Мұндағы dx және dy кескiннiң экранның сол жақ жоғарғы шетiне қарағандағы ығысуын қамтамасыз етедi, ал mx, my айнымалыларының мәндерi
rx = mx * x +1
ry = my * y +1
шарттарын қанағаттандыруы тиic (x және у деарт координаталары-ның ең үлкен мәндерi). Мысалы: кескiндi экранның центрiне орналас-тыру қажет болса
dx = rx div 2, dy = ry div 2
деп аламыз..........
Мақала ұнаса, бөлісіңіз:
Ұқсас мақалалар:
» Курстық жұмыс: Бағдарламалау | Турбо Паскальдың графикалық мүмкіндіктері
» Курстық жұмыс: Экономика | Паскаль жүйесіндегі графика
» Курстық жұмыс: Бағдарламалау | Турбо-Паскальдағы графикамен жұмыс
» Курстық жұмыс: Бағдарламалау | Турбо Паскаль жүйесінде процедураларды ұйымдастыру технологиясы
» Курстық жұмыс: Бағдарламалау | Турбо Паскальдағы функция
» Курстық жұмыс: Бағдарламалау | Турбо Паскальдың графикалық мүмкіндіктері
» Курстық жұмыс: Экономика | Паскаль жүйесіндегі графика
» Курстық жұмыс: Бағдарламалау | Турбо-Паскальдағы графикамен жұмыс
» Курстық жұмыс: Бағдарламалау | Турбо Паскаль жүйесінде процедураларды ұйымдастыру технологиясы
» Курстық жұмыс: Бағдарламалау | Турбо Паскальдағы функция
Іздеп көріңіз: