Курстық жұмыс: Экономика | Паскаль жүйесіндегі графика

0

Мазмұны

1. Графикалық экранның режимі
1. Дисплей графикалық экранының режимі
2. Графикалық экран режимінің сипаттамалары
3. Экранның графикалық режимінің мүмкіндігі
4. Графикалық режимдегі палитра
5. Экрандық беттер мөлшері
2. GRAPH модулі
1. Графикалық режимді тағайындау және одан шығу
2. GRAPH модулі
3. Кейбір фунуциялар мен процедуралар
4. Графикалық режимді басқару командалары(экран, фон)
3. Программулау негіздері
1. Графикалық экранға нүкте шығару
2. Графикалық экранға кесінді салу
3. Кесінді салу стилі
4. Экранда көпбұрыш тұрғызу
5. Шеңбер, эллипс және олардың доғаларын тұрғызу
6. Толтыру процедуралары
7. Графикалық режимде экранға текст шығару
8. Функция графигін салу

III. Қорытынды

Дисплей экранының графикалық режимі.

Әдеттте дисплей экраны екі режимде болады: тексттік және графиктік. Екі режимде де пиксель деп аталатын дисплей экранының физикалық нүктелері пайдаланылады. Графикалық режимде графикалық нүктелердің өзінің “координаталар жүйесі” енгізіледі.
О(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) — боялған тіктөртбұрыш салу
Procedure Bar3D (x1,y1,x2,y2:Integer; Depth:Word; Top: Boolean) —боялған параллелепипед салу
Procedure GetImage (x1, y1, x2, y2 : integer; A: pointer) — кескіннің көрсетілген төртбұрышты фрагментін жадыда сақтайды
Procedure PutImage (x, y: integer; A: pointer; M: SortInt) — жадыда сақталған кескін фрагментін берілген режимге (0…4) сәйкес экранның көрсетілген орнына шығарады.
Procedure Circle (X,Y: Integer; Radius: Word) — шеңбер салу
Procedure Clear Device — экранды тазалау және оны фон түсімен бояу
Procedure Clear ViewPort — терезені тазалау және оны 0 түспен бояу
Procedure CloceGraph — графикалық режимнен шығу
Procedure DrowPoly (NumPoints : Word; var PolyPoints) — көбұрыш салу
Procedure Ellipse (XY: Integer; StAngle, EndAngle : Word; Xradius, Yradius: Word) — эллипс салу
Procedure FillEllipse (X,Y: Integer; Xradius, Yradius: Word) — боялған эллипс
Procedure FillPoly (NumPoints : Word; var PolyPoints) — боялған көпбұрыш
Procedure FloodFill (X,Y: Integer; Border: Word)—ағымдағы түспен тұйық фигураны бояу
Function GetColor : Word — сызықтар мен контурлардың түсін қайтару
Function GetMaxX : Integer — Х-тің ең үлкен координатасын қайтарады
Function GetMaxY : Integer — У-тің ең үлкен координатасын қайтарады
Function GetPixel (X,Y : Integer) : Word — пиксель түсін қайтару
Function GetX : Integer — Х-тің координатасын қайтару
Function GetY : Integer — У-тің координатасын қайтару.

Графикалық экранды басқарудың негізгі командалары

INITGRAPH – графикалық режимді тағайындау
DETECT – графикалық драйверді автоматты түрде анықтау
CLOSEGRAPH – графикалық режимді жабу
SETGRAPHMODE – жаңа графикалық режимді тағайындайды. SETGRAPHMODE ‹режим› мұндағы режим – код немесе режим номері
CLEARDevice – процедурасы графикалық экранды тазалайды. CLAERDevice – форматы

Экраннның барлық түзетулері, бастапқы қалыпқа келтіріліп, курсор экранының 0,0 нүктесіне келеді.
SetViewPort процедурасы төртбұрыш терезені тағайындайды. Форматы: SetViewPort (х1, у1, х2, у2 ‹қиық›)
мұндағы х1, у1, х2, у2 — тіктөртбұрштың сәйкес сол жақ жоғарғы және оң жақ төменгі координатасы, типі iteger; ‹қиық› — типі boolean, егер true мәнін қабылдаса, терезе шекарасымен өтеді; ал false мәнін қабылдаса, керісінше.
ClaerViewPort процедурасы – терезені тазалайды
GetMaxX және GetMaxY функциясы – тағайындалған графикалық режимде экранның х және у осьтері бойынша ең үлкен координатасының мәнін анықтайды.
Типі integer, форматы: GetMaxX, GetMaxY.
MoveTo процедурасы курсорды көрсетілген координатаға орналастырады; форматы: MoveTo(х, у)
GETX және GETY функциялары курсордың ағымдағы координатасын анықтайды. Форматы: GETX және GETY
SetPalette процедурасы — берілген бояудағы түстің реттік номері үшін стандартты бояудағы түсті өзгертуге мүмкіндік береді.
SetAllPalette процедурасы – алдыңғысындағыдай, бояудағы түстің барлық реттік номерін өзгертеді.
GetPalette процедурасы ағымдағы бояудың сипаттамасын береді: түстердің мөлшерін, кодын.
GetPaletteSize функциясы – ағымдағы графикалық режимнің бояуындағы түстердің мөлшерін типін береді.
GetDefaultPalette процедурасы – ескертусіз тағайындалған графикалық режимнің бояулардың сипаттамасын береді(режимнің стандартты бояуы).
SetColor процедурасы – графикалық немесе тексттік информацияны графикалық экранға шығаратын ағымдағы түсті тағайындайды: SetColor(‹түс›). Мұндағы ‹түс› : Word – түс номерін көрсетеді.
GetMaxColor функциясы – ағымдағы шығарылатын түстің номерін береді.
Форматы : GetMaxColor.
GetColor функциясы – ағымдағы графикалық режимдегі түстің ең үлкен номерін береді.
Форматы: GetColor мәнінің типі Word.
SetBkColor процедурасы орындалғанда графикалық экранның ағымдағы фонның түсі берілген түске өзгереді.
Форматы: SetBkColor (‹түсі›); мұндағы түс – Word типті түстің номері.
GetBkColor функциясы – шығарылатын ағымдағы фонның түсін береді. Форматы: GetBkColor; мәнінің типі Word.
GetMaxColor функциясы ағымдағы графикалық режимде тұратын түстің ең жоғарғы номерін береді.
Форматы: GetMaxColor; мәнінің типі Word……

Рахмет ретінде жарнамалардың біреуін басуды сұраймын!