Курстық жұмыс: Бағдарламалау | Турбо Паскальдың графикалық мүмкіндіктері
Мазмұны
I. Кріспе
II. Негізгі бөлім
1. Графикалық экранның режимі
1. Дисплей графикалық экранының режимі
2. Графикалық экран режимінің сипаттамалары
3. Экранның графикалық режимінің мүмкіндігі
4. Графикалық режимдегі палитра
5. Экрандық беттер мөлшері
2. GRAPH модулі
1. Графикалық режимді тағайындау және одан шығу
2. GRAPH модулі
3. Кейбір фунуциялар мен процедуралар
4. Графикалық режимді басқару командалары(экран, фон)
3. Программулау негіздері
1. Графикалық экранға нүкте шығару
2. Графикалық экранға кесінді салу
3. Кесінді салу стилі
4. Экранда көпбұрыш тұрғызу
5. Шеңбер, эллипс және олардың доғаларын тұрғызу
6. Толтыру процедуралары
7. Графикалық режимде экранға текст шығару
8. Функция графигін салу
III. Қорытынды
КІРІСПЕ
Қазіргі дербес компьютерлердің графикалық информацияларды енгізу, шығару және өңдеуге арналған техникалық құрылғылары бар. Графикалық информацияны енгізу үшін — сканер, ал шығару үшін дисплей экраны және плоттер пайдаланылады.
Стандартты Паскальдың графикалық информациямен жұмыс істейтін командалары жоқ.
Турбо Паскаль жүйесінде графикалық информациялармен жұмыс істеу үшін GRAPH.TPU модулі пайдаланылады. Бұл модульде графикалық процедуралар мен функциялардың программасы машиналық тілде жазылған.
Турбо Паскаль графикасын, көбінесе, псевдо — графика деп атайды, өйткені тілдің өзінде графикалық командалары келтірілмеген. GRAPH модулінде графикалық информацияларды дисплей экранына шығаруға және өңдеуге арналған командаларды сүйемелдейтін типтер, тұрақтылар, айнымалылар, процедуралар мен функциялар сипатталады.
Graph модулі IBM — типтес дербес компьютерлердің графикалық адаптерлерімен жұмыс жасауға есептелінген, графикалық процедуралар мен функциялардың, тұрақтылардың, айнымалылар мен типтердің қуатты кітапханасы болып табылады. Turbo Pascal ортасын қолданатын Паскаль тілінде программалауда Graph модулінің 132 тұрақтысы, 7 қосымша типі, 2 айнымалысы, 57 процедурасы мен 22 функциялары пайдаланады.
Турбо Паскалда графикалық драйверлер деп аталатын арнайы программалар (BGI – файлдар) видеоадаптерлердің қалыптыжұмсын басқарады:
Драйверлер Видеоадаптерлер
CGA.BGI CGA,MCGA
EGAVGA.BGI EGA,VGA
HERC.BGI Heercules(монохромды)
ATT.BGI AT&T6300(400жол)
PC3270.BGI 3270PC
IBM8514.BGI IBM — 8514
Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктерін өзгерте алатын бірнеше графикалық режимде жұмыс жасай алады.
Негізгі бөлім
Дисплей экранының графикалық режимі.
Әдеттте дисплей экраны екі режимде болады: тексттік және графиктік. Екі режимде де пиксель деп аталатын дисплей экранының физикалық нүктелері пайдаланылады. Графикалық режимде графикалық нүктелердің өзінің “координаталар жүйесі” енгізіледі.
О(0, 0) х
У (639, 479)
Экрандағы графикалық бейне графикалық экранының буферінің күйіне байланысты графикалық нүктелерінің жарықталуынан құралады. Экран буфері дегеніміз — бұл графикалық экранда әрбір пиксельдің жарықталыну түсі мен белгісі кодталған оперативті жадының бөлігі. Пайдаланылған графикалық экранның режиміне, дисплейдің типіне және жадының көлеміне тәуелді графикалық экран үшін бір немесе бірнеше буфер ұйымдастырылуы мүмкін. Мұндай буферлер графикалық экрандық беттер деп аталады. Дербес жағдайда, физикалық экран тек бір ғана бетпен байланысты болуы мүмкін. Графикалық информацияны сол мезетте шығаруға бағытталған буфер активті бет (буфер) деп аталады.
Визуалды, көрінетін бет (буфер) деп сол мезетте физикалық экранмен байланысты буферді айтамыз. Активті және визуалды беттердің әртүрлі буферлері болуы мүмкін. Активті бет визуалдық бет деп аталады. Дәлірек айтсақ, бет дегеніміз — экранның графикалық информациясы, ал буфер — осы информацияны кодталған күінде сақтайтын жады бөлігі.
Тексттік экран сияқты графикалық экранның да курсоры болады.
Графикалық курсордың тексттік курсордан айырмашылығы графикалық курсор барлық уақытта көрінбейді. Графикалық курсор соңғы шығарылған нүктеден кейінгі нүктеде орналасады. Ол GRAPH модулінің кейбір функцияларында пайдаланылады.
Графикалық экран режимінің сипаттамалары
Графикалық режимнің төмендегідей сипаттамалары бар: мүмкіндігі (расшерение), палитра (бояу), фонның түсі, шығарылатын графикалық нүктенің түсі, оперативті жадыдағы графикалық экрандық беттердің мөлшері.
Бұл сипаттамалар, ең алдымен, дисплейдің техникалық типімен жүйеден графикалық режимге бөлінген видеожадының көлеміне тәуелді. Дисплей экранының жұмысын басқаратын техникалық құрылғы адаптер деп аталады.
Экранның графикалық режимінің мүмкіндігі
Экранның графикалық режимінің мүмкіндігі экрандағы х, у осі бойынша орналасатын графикалық нүктелердің мөлшерімен анықталады. Ең жоғарғы мүмкіндік бір графикалық нүктеге бірнеше пиксель пайдаланылса, онда мүмкіндік төмендегідей болады. Сонымен, графикалық нүктеге пиксель қаншалықты көп пайдаланылса, соншалықты экранның графикалық мүкіндігі төмен болады. әдетте, бір нүктеге бір пиксельден келетін жоғары мүмкіндікті режим пайдаланылады.
Графикалық экранның мүмкіндігі дегеніміз — бұл экранға шығарылатын бейненің дәлдігі. Мысалы, экранға графикалық бейнелерді шығару мүмкіндігі қаншалықты жоғары болса, функциялардың графигін соншалықты дәл тұрғызуға болады.
Графикалық режимдегі палитра.
Палитра (бояулар) дегеніміз — бұл графикалық режимге арналған түстер жиынтығы. Режимге арналған бірнеше палитралар бар, бірақ әдетте стандартты 16 түс пайдаланылады(егер адаптер EGA немесе VGA болса).
Black — 0 — қара
Blue — 1 — сұр
Green — 2 — жасыл
Cegan — 3 — көгілдір
Red — 4 — қызыл
Magenta — 5 — күлгін
Brown — 6 — қоңыр
Light Gray — 7 — ақ-сұр
Dark Gray -8 — қара-сұр
Light Blue -9 — ашық көк
Light green -10 — ашық жасыл
Light Cegan -11- ашық көгілдір
Light Red -12 — алқызыл
Light Magenta -13 -таңқурай түс
Yellow -14 -сары
White -15 — ақ
Кестеде келтірілген түстердің ағылшынша атауларының номерлері GRAPH модулі үшін тұрақты (константа) болып есетеледі. Алғашқы 8 түсті (0…7) фонның түсі үшін де, шығару түсі үшін де пайдалануға болады, ал қалған түстер (8…15) тек графикалық бейнелерді шығару үшін ғана пайдаланылады.
Экрандық беттер мөлшері
Экрандық режимнің графикалық экрандық беттерге арналған бір немесе бірнеше буфері болады.
Ең жоғарғы мүмкіндікті режимде тек бір ғана графикалық экрандық бет болады, яғни оны кодтау үшін үлкен жады көлемін қажет етеді. Сөйтіп х осі бойынша 640 нүкте, у осі бойынша 480 нүкте және 16 түсті бояу палитрасы графикалық бетке арналған буфер жадыдан 16 Кбайт орын алады.
Экрандық бет графикалық режимде экранға шығару буферінде кодталады. Онда экранның барлық графикалық нүктелерінің ағымдағы күйі сипатталады. Нүктенің күйі оның жану бегісімен және шығаруға арналған түстің номерімен кодталады. Егер белгі нольге тең болса, онда барлық пиксельдер фонның түсімен жарықтанлған. Егер белгі 1-ге тең болса, онда ол шығару түсінің номерімен жарықталған графикалық бейнелерді шығаруда драйвер белгі мен шығару түсін буфердегі экранның активті бетінің сәйкес нүктелерінің байтына жазады. Егер режимнің бірнеше экрандық беті болатын болса, онда бейнені шығаратын бір бетті активті, ал қалған беттерді визуалды жасауға болады.
GRAPH модулінде беттерді басқару үшін екі процедура пайдаланылады:
SETACTIVPAGE () — бетті активті жасауға арналған.
SETVISUALPAGE () — бетті визуалдандыруға арналған.
Сонымен, режимдердің өлшемдері мен сипаттамалары дисплеймен, оның адаптерімен анықталады. GRAPH модулі режимде шыққан барлық дисплей адаптерлерінің жұмысын сүемелдей алады.
VGA адаптерінің режимі үшін қысқаша нұсқау:
VGAL0 =0 — VGA-ға арналған ең төменгі мүмкіндікті графика (640•200 нүкте, 16 түс, 4 бет);
VGAMED=1 – VGA-ға арналған орташа мүмкіндікті графика (640•350 нүкте, 16 түс, 2 бет);
VGAH:=2 — VGA-ға жоғары мүмкіндікті графика (640•480 нукте, 16 түс, 1 бет);
Графикалық режимді тағайындау және одан шығу
Жалпы алғанда, компьютерде негізгі екі экранрежимінің жұмысы—символдық және графикалық экранрежимдері пайдаланылады. Компьютерді қосып, Турбо Паскаль жүйесін шақырғанда тексттік режим түрінде істейді. Графикалық режимді алу үшін GRAPH.TPU модулін (Uses GRAPH – пен бірге) қосып, керекті графикалық режим INITGRAPH процедурасымен инициализация жаcалуы қажет. Режимді инициализациялау дегеніміз —дисплей адаптерінің жұмысын берілген графикалық режимнің күйіне келтру, яғни физикалық экранды режимнің жұмысына көшіру. Осы режимді тағайындағаннан кейін GRAPH модулінің барлық командаларын пайдалануға болады.
Графикалық режимнен шығу үшін Closegraph процедурасы пайдаланылады. Графикалық режимді инициализациялау INITGRAPH (,, ) операторымен орындалады; мұндағы — графикалық драйверге арналған integer типті айнымалы; — адаптердің жұмыс режиміне арналған integer типті айнымалы (тағайындалатын графикалық режимнің номері); — графикалық драйвердің файлына баратын жолды көрсететін string типті өрнек.
INITGRAPH(DRIVER, MODE, ‘C:BPBGI’); — модуль жұмысын нақтылау (инициировать). Бұл жоғарыда айтылғанның көрінісі:
мұндағы DRIVER — видеоадаптердің графикалық драйвердің типін орнату параметрі; MODE — оның жұмыс істеу режимін беру; ‘C:BPBGI’ — *. BGI графакилық драйверлер орналасқан каталогқа сілтеме жолы. BGI
Ескерту.
1. Драйвердің типі адаптердің типіне сәйкес келуі тиіс.
2. Драйвердің параметрі әдетте detect функциясымен беріледі; — яғни драйверді автоматты түрде анықтау, — оны GRAPH модулінің тұрақтысымен беруге болады, мысалы, VGA немесе 9. Detect функциясын пайдаланғанда жоғары мүмкіндікті режим тағайындалады.
3. Егер драйвер сол қалыпта тұратын болса, Паскаль жүйесінің файлдары орналасқан каталогта болса, онда бос жол деп, яғни ’ ’- 2 апострофпен көрсетуге болады.
Графикалық драйверлерді анықтау және олардың жұмыс режимдерін қою тұрақтылары (тәжірибеде жиі пайдаланатын режимдер) төмендегі кестеде толық берілген:
DRIVER MODE
Detect =0 EGALo =0 {640×200; 16 түс; 4 бет}
CGA =1 EGAHi =1 {640×350; 16 түс; 2 бет}
MCGA =2 EGA64Lo =0 {640×200; 16 түс; 1 бет}
EGA =3 EGA64Hi =1 {640×350; 4түс; 1 бет}
EGA64 =4 EGAMonoHi =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 түс}
PC3270 =10 VGA8514Hi =1 {1024×768; 256 түс}
Графикалық режимінің тағайындалу нәтижесіекі функция модулінің мәндерінен көрінедіGRAPHresult: integer, аргументсіз инициализация нәтижесінің коды үшін және GRAPHerror ():string – инициализация қатесінің себебін ағылшын тілінде хабарлау үшін.
GRAPHresults функциясы кез-келген функция немесе процедура модульдерінің орындалуындағы қатенің кодын береді. Код міндері: 0…14. егер код нольге тең болса, онда орындалуда қате жоқ, GRAPHresult=0 графикалық режимінің дұрыс тағайындалғанын көрсетеді, яғни қатесіз тағайындау; Ал егер GRAPHresult ‹ › 0 мәнін қабылдаса, мысалы, код – 3 – BGI графикалық драйверінің табылмағанын көрсетеді.
Программада инициализация (нақтылау үшін) жасау үшін мынадай операторлар мен сөйлемдерді жазу қажет.
USES GRAPH CRT;
Var driver, regim, error: integer;
S:char;
. . .
driver:=detect;
INITGRAPH(driver, regim, ‘ ‘);
error:=Graphresult;
if error < >0 then
begin
writeln(‘Графикалық режимде қате бар!’);
writeln(‘tokta!’);
s:=readkey
end;
…
Графикалық режимде жұмыс істеу программасы
PROGRAM PROBA;
USES GRAPH;
VAR DRIVER, MODE ___ : INTEGER;
BEGIN
DRIVER:=DETECT;
INITGRAPH(DRIVER, MODE, ‘C:/BP/BGI’);
. . .
CLOSEGRAPH
END
GRAPH.TPU модулі
Графикалық режимді тағайындағаннан кейін пайдаланушы өзінің жұмысы үшін әртүрлі команда пайдаланады. Бұл командалар қызметі бойынша төмендегідей топталады:
графикалық экранды басқару үшін;
графикалық информацияны өңдеу және шығару үшін;
графикалық режимде текст шығару үшін.
Графикалық экранды басқару командалары
пайдаланылған драйвер туралы информацияны алу;
графикалық режимдердің мөлшерін және сипаттамаларын білу;
графикалық экранның жұмысына қажетті режимді тағайындау;
экранның графикалық беттерін басқару;
графикалық информациямен шығаруға арналған терезені іске қосу және ажырату;
графикалық инормациямен шығару және фон түстерін басқару;
экранды графикалық курсормен басқару;
экранды немесе терезені тазарту жатады.
Графикалық информациямен енгізу және шығару командалары:
графикалық экранға нүкте, кесінді, тіктөртбұрыш, қисық сызық, шеңбер, элипс, доға, элипс және шеңбер секторларының шығару процедуралары;
динамикалық жадыға графикалық экранның бөліктерін бейнелерімен сақтау және оны қайтадан экранға шығару;
экрандағы тұйықтарды белгілі бір түстермен бояу не штрихтау.
Графикалық режимде экранға текст шығару командалары — графикалық эктанға string типті текст жолын шығаруға мүмкіндік береді.
GRAPH модулінің командалары графикалық экранда кез-келген бейнені тұрғызуға мүмкіндік береді.
Graph модуліндегі кейбір функциялар мен процедуралардың қысқаша сипаттамалары:
Procedure PutPixel (X,Y: Integer; Pixel: Word) — нүкте салу
Procedure Line (x1,y1, x2, y2:Integer) — сызық слау
Procedure LineRel (Dx, Dy : Integer) — салыстырмалы координатада сызық салу
Procedure Line To (X,Y: Integer) — көрсетілген нүктеге дейін сызық салу
Procedure Move To (X,Y: Integer) — экранды көрсетілген нүктеге жылжыту
Procedure Move Rel (Dx, Dy: integer) — көрсеткішті (dx, dy) векторына ығыстырады.
Procedure Out Text (Text String: string) — текст шығару
Procedure Out TextXY(X,Y: Integer, Text String: string) — көрсетілген нүктеден текст шығару
Procedure RestoreCrtMode — тексттік режимге қайта оралу
Procedure SetColor (Color: Word) — сызықтың, нүктенің және т.б. түсін беру
Procedure SetFillPattern (Pattern: FillPattern Type; Color: Word) — кез-келген тұйық фигураны бояу
Procedure Set Fill Style (Pattern: Word; Color: Word) — бояу, толтыру стилін орнату
Procedure Set Text Style (f, n, r : word) — мәтінді экранға шығару параметрін анықтайды (f – шрифт(0,1,2,3,4) n – бағыт (0,1) r – шрифт өлшемі (1,×4)).
Procedure SetRGBPalette(c, r, g, b: Sortint) — c түстің қызыл, жасыл, көк құраушыларын өзгертеді (0 ≤ r, g, b ≤ 63)
Procedure Arc (X,Y :Integer; StAngel, EndAngle, Radius : Word) — шеңбер доғасын салу
Procedure Sector (x,y : Integer, StAngle, EndAngl, Xradius, YRadius:Word)—сектор салу және бояу
Procedure Rectangle (x1,y1, x2,y2: Integer) — тіктөртбұрыш салу
Procedure Bar (x1,y1,x2,y2: Integer) — боялған тіктөртбұрыш салу……