Паскаль жүйесіндегі графика

Ұлттық қолөнер - эстетикалық тәрбиенің негізі

Жоспар

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

КІРІСПЕ

Қазіргі дербес компьютерлердің графикалық информацияларды енгізу, шығару және өңдеуге арналған техникалық құрылғылары бар. Графикалық информацияны енгізу үшін — сканер, ал шығару үшін дисплей экраны және плоттер пайдаланылады.

Стандартты Паскальдың графикалық информациямен жұмыс істейтін командалары жоқ.

Турбо Паскаль жүйесінде графикалық информациялармен жұмыс істеу үшін 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 (<N бет>) — бетті активті жасауға арналған.

SETVISUALPAGE (<N бет>) — бетті визуалдандыруға арналған.

Сонымен, режимдердің өлшемдері мен сипаттамалары дисплеймен, оның адаптерімен анықталады. 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:\BP\BGI’); — модуль жұмысын нақтылау (инициировать). Бұл жоғарыда айтылғанның көрінісі:

мұндағы DRIVER — видеоадаптердің графикалық драйвердің типін орнату параметрі; MODE — оның жұмыс істеу режимін беру; ‘C:\BP\BGI’ — *. 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 модулі

Графикалық режимді тағайындағаннан кейін пайдаланушы өзінің жұмысы үшін әртүрлі команда пайдаланады. Бұл командалар қызметі бойынша төмендегідей топталады:

графикалық экранды басқару үшін;
графикалық информацияны өңдеу және шығару үшін;

графикалық режимде текст шығару үшін.

Графикалық экранды басқару командалары

пайдаланылған драйвер туралы информацияны алу;

графикалық режимдердің мөлшерін және сипаттамаларын білу;

графикалық экранның жұмысына қажетті режимді тағайындау;

экранның графикалық беттерін басқару;

графикалық информациямен шығаруға арналған терезені іске қосу және ажырату;

графикалық инормациямен шығару және фон түстерін басқару;

экранды графикалық курсормен басқару;

экранды немесе терезені тазарту жатады.

Графикалық информациямен енгізу және шығару командалары:

BD14581_ графикалық экранға нүкте, кесінді, тіктөртбұрыш, қисық сызық, шеңбер, элипс, доға, элипс және шеңбер секторларының шығару процедуралары;

BD14581_ динамикалық жадыға графикалық экранның бөліктерін бейнелерімен сақтау және оны қайтадан экранға шығару;

BD14581_ экрандағы тұйықтарды белгілі бір түстермен бояу не штрихтау.

Графикалық режимде экранға текст шығару командалары — графикалық эктанға 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.

Графикалық экранға нүкте шығару

PutPixel процедурасы экранға нүктені көрсетілген координатасымен және түсімен шығарады.

Форматы: PutPixel(х, у, С); мұндағы х, у — типі Word, нүктенің координатасы, С – түсі, типі.

GetPixel функциясы – координатасы көрсетілген экранның графикалық нүктесінің түсін анықтайды. Форматы: GetPixel (х, у, С); мұндағы х, у – типі Word нүктенің координатасы.

Графикалық экранға кесінді салу

LINE процедурасы бастапқы және соңғы нүктелерінің көрсетілген координатасы бойынша кесінді салады.

Форматы Line (х1, у1, х2, у2); мұндағы х1, у1 – бастапқы нүктенің координатасы, х2, у2 – соңғы нүктенің координатасы.

LineTo процедурасы – кесіндіні ағымдағы курсор тұрған нүктеден координатасы көрсетілген нүктеге дейін сызады. Форматы: LineTo(х, у), мұндағы х, у – кесіндінің соңғы нүктесінің координатасы.

LineRel процедурасы – кесіндіні ағымдағы түспен курсор тұрған нүктеден қосымша өзгертілген нүктенің координатасына дейін кесінді сызады.

Форматы: LineRel (dх, dу). Мұндағы dх, dу – қосымша көрсетілген (өзімше) нүктенің координатасы.

Кесіндіні шығару стилі /сызықтық қалыңдықтары және түрлері/

GRAPH модулінде шығарылатын кесіндінің түрін, стилін анықтайтын командалар да бар.

SetLineStyle процедурасы шығаратын сызықтың түрін тағайындайды. Ол тек кесінді үшін ғана емес, содай-ақ кез-келген геометриялық объектілерді сызу үшін де пайдаланылады. Модульде шығарылатын кесіндінің стандартты стильдерінің коды 0…3 енгзілген, ал 4-ші код бойынша пайдаланушының анықтайтын стилі алынады. Олар модульдің белгіленген тұрақтылары болып табылады:

Const SolidLn=0; (_______тұтас)

DottedLn=1; (……….. нүктелік)

SenterLn=2; (_._._._ пунктирлі-штрих)

DashedLn=3; ( пунктир)

UserBitln=4; (пайдаланушы анықтайды)

Пайдаланушының стилі 16 пиксельдің қатарынан жануын кодтауға мүмкіндік береді. Бұдан 16 биттен тұратын жол шығады; 1 – пиксельдің ағымдағы түспен жанатынын көрсетеді; ал 0 – керісінше.

SetLineStyle процедурасы экранға шығарылатын кесінділердің стилін тағайындайды.

Форматы: SetLineStyle (‹код›, ‹шаблон›, ‹қалыңдық›)

Мұндағы ‹код›: — мәні 0 мен 4 аралығындағы стиль коды, ‹шаблон›: — пайдаланушы стилінің шаблонының коды, ол стиль коды тек 4-ке тең болған жағдайда ғана пайдаланады.

Экранда көпбұрыштар тұрғызу

RecTangle процедурасы диагональдарының төбелерінің координатасы бойынша тіктөртбұрыш сызады.

Форматы: RecTangle(х1, у1, х2, у2); мұндағы х1, у1 – тіктөртбұрышының сол жақ жоғарғы төбесінің координатасы, ал х2, у2 – оң жақ төменгі төбесінің координатасы.

Bar процедурасы – ағымдағы түспен боялған тіктөртбұрыш сызады.

Форматы: Bar(х1, у1, х2, у2: integer);

(Х1, У1) және (Х2, У2) нүктелері боялған тіктөртбұрыштың сол жақ жоғарғы және оң жақ төменгі бұрыштарының нүктелерінің координаталары. Setfillstyle және Setfillpattern процедураларының көмегімен бояудың түсі мен үлгісі тағайындалады.

Bar3d процедурасы – ағымдағы түспен параллелепипед сызады.

Форматы: Bar3d (х1, у1, х2, у2: integer; биіктігі: word; төбесі: boolean);

Setfillstyle және Setfillpattern процедураларының көмегімен тағайындалған түспен боялған үш өлшемді параллелепипед сызылады. Биіктігі параметрі үш өлшемді контурдың биіктігін бейнелейтін сан. Егер төбесі параметрі бойынша алынған айнымалы ақиқат мән (True) қабылдайтын болса, онда үш өлшемді параллелепипедтің төбесі сызылады. Төбесінің параметрі жалған мән қабылдаса (False), төбесі сзылмайды. Мұндай өзгерістер жасау үшін программадағы “Т” параметрінің қабылдайтын мәнін өзгертсек жеткілікті.

Drowpoly процедурасы ағымдағы түспен төбелерінің координаталары бойынша тұйық контур (яғни көпбұрыш жасайды)сызады.

Drowpoly (координаталарының саны: word; var төбелерінің координатасы);

Const

Triangle: array[1…4] of point Type=((х:50; у:100),
(х:100; у:100);

(х:150; у:150),

. . . (х:60; у:100));

begin

. . .

Drowpoly (Size of (Triangle) div Size of(Point Type), Triangle);

. . .

End;

Немесе

begin …

Drowpoly(4, Triangle);

… End;

Шеңбер, эллипс және олардың доғаларын тұрғызу

Circle процедурасы – ағымдағы түспен, көрсетілген центр және радиус бойынша шеңбер сызады.

Форматы: Circle(х1, у1, радиус); мұндағы х1, у1 – центрінің координатасы; типі integer;‹радиус› — типі Word болып келген радиус.

Arc процедурасы – ағымдағы түспен көрсетілген, центр, радиус және доғаның бастапқы және соңғы бұрыштары бойынша шеңбер доғасын сызады. Форматы: Arc(х1,у1, ‹ББ›‹СБ›‹радиус› )

Бұрыштар центрдің оң жағынан, сағат стрелкасына қарсы, горизонталь радиустан бастап есептеледі. Мысалы, 1-ширектегі шеңбер доғасы үшін бастапқы бұрыш 00-қа, соңғы бұрыш – 900-қа тең. Ellipse процедурасы ағымдағы түспен эллипс доғасын сызады (көрсетілген центр, доғаның бастапқы және соңғы бұрыштарын және эллипстің жарты осьтері бойынша). Бұрыштар — сағат тіліне қарсы, центрдің оң жағынан горизонталь радиустан бастап есептеледі. Егер бұрыштары сәйкес 00 және 3600 деп берсе, онда тұтас эллипс сызылады. Жарты осьтер экранның графикалық бірлігімен беріледі.

Форматы Ellipse(х, у, ББ, СБ, а,в); мұндағы х,у – эллипс центрі; ББ,СБ – эллипс доғасының сәйкес бастапқы және соңғы бұрышы, ал а, в – горизонталь және вертикаль жарты осьтер.

Толтыру процедуралары

SetFillStyle процедурасышаблонның коды мен тұйық номері бойынша толтырустилін тағайындайды.

Форматы: SetFillStyle (шаблон коды, С)

0 – тұтас тайғайындалған түспен толтыру

1 – белгілі бір түспен толтыру

2 – 3 – 4 – 5 – 6 –

7 – 8 – 9 – 10 – 11 –ь

12 – орындаушының стилімен толтыру

FloodFill процедурасы ағымдағы стильмен тұйық облыстың ішін бояйды. Форматы: FloodFill (х, у, С); мұндағы х, у : integer, — графикалық экрандағы нүктенің координатасы; С : Word – фигура жиегінің түсі.

Бұл процедура бояу барысында:

  1. егер жиек шектелген болса және х, у нүктесі оның ішінде жатса, онда фигураның ішкі облысы боялады;
  2. егер жиек шектелген, бірақ х, у тұйық облыстың сыртында болса, фигураның сырт жағы боялады;
  3. жиек тұйықталмаған болса, онда х, у нүктесінің орнына тәуелсіз толық экран боялады не штрихталады.

<қалыңдық> : Word – шығарылатын сызықтың қалыңдығын көрсетеді;

Ескерту: қалыңдық тек екі мәнмен ғана беріледі: 1 не 3, яғни 1 немесе 3 пиксель.

GetLineSetting процедурасы – осы мезетте тағайындалған кесіндіні экранға шығару стилі.

Форматы: GetLineSetting (<стиль>) мұндағы стиль ағымдағы стильді сипаттайтын LineSetting Type типті айнымалы.

Ескерту: LineSetting Type типті GRAPH модулінде сипатталған.

Type LineSetting =recod

LineDtyle : Word; {стиль коды}

Pattern : Word;{шаблон}

Ticlines : Word;{қалыңдығы}

SetWriteMode процедурасы – экрандағы бейнені пиксельмен экранға шығаратын кесіндінің пикселінің өзара әсерлесу тәсілін анықтайды.

FillPoly процедурасы – ағымдағы стильмен, түспен шегі жиектелген көпбұрышты экранға шығарады.

Форматы: FillPoly (N, <координата>); ммұндағы N – типі Word болатын көпбұрыш төбелерінің саны; <координата> – PointType айнымалы типті төбелерінің координаталарының мәндері.

Ескерту: ол GRAPH модулінде бейнеленген.

type PointType=record x, y : integer;

FillEllipse процедурасы ағымдағы стильмен штрихталған, боялған, шеті ағымдағы түспен шектелген эллипс сызады.

Форматы: FillEllipse (х, у, ББ, СБ, а, в);

Мұндағы х, у : integer – эллипс центрі, ББ,СБ – доғаның сәйкес бастапқы және соңғы бұрыштары, а – горизонталь, в – вертикаль жарты осьтері.

Sector процедурасы – ағымдағы стильмен штрихталып боялған, шеті ағымдағы түспен шектелген эллипс секторын экранға шығарады.

Форматы: Sector (х, у, ББ, СБ, а, в); х, у – эллипс секторының центрі; ББ, СБ – сәйкес сектордың бастапқы және соңғы бұрыштары, а, в – жарты осьтер.

PieSlice процедурасы – ағымдағы стильмен штрихталып боялған, шеті ағымдағы түспен жиектелген шеңбер секторын экранға шығарады.

Форматы: PieSlice (х, у, ББ, СБ, R); R – радиус.

Графикалық режимде экранға текст шығару командалары

GRAPH модулінде графикалық экранға текст жолдарын шығаруға арналған командалар бар, тек жолдарды экранға шығарып қана қоймайды. Мысалы,

OutText процедурасы ағымдағы түспен, графикалық курсордың ағымдағы позициясынан бастап, тағайындалған бағытта текстті (жолды) шығарады. Форматы: OutText(Текст);

мұндағы Текст — типі string немесе char болып келген шығарылатын текст.

ОutTextXY процедурасы көрсетілген позициядан бастап экранға текст шығарады.

Форматы: OutTextXY(х, у, Текст);

мұндағы х, у: integer – шығарылатын тексттің позициясын көрсетеді, Текст — типі char немесе string болып келген текст мәні.

Ескрту. Бұл процедурада OutText процедурасы тәрізді, бірақ курсор көрсетілген орында қалады. Шын мәнінде бұл процедура екі процедураның қызметін атқарады:

MoveTo(х, у); (курсорды тағаындау)

OutText(Текст);

SetTextStyle процедурасы шығарылатын тесттің стилін тағайындайды: шрифт, бағыт өлшем.

Форматы: SetTextStyle(шрифт, бағыт, өлшем);

мұндағы шрифт – типі Word, шрифт коды;

бағыт – типі Word, бағыттың коды;

өлшем – типі Word, өлшем коды.

SetTextJustify (x, y : word) — мәтінді автоматты түрде жатық (х) және тік жол (у) бағыттарында қатарластырады.

Х: 0 – сол жақтан, 1 – ортадан, 2 – оң жақтан;

У: 0 – төменнен, 1 – ортадан, 2 – жоғарыдан.

Функцияның графигін салу

Функцияның графигін салу үшін мынадай әдіс ұсынылады. Координаталар жүйесінің бас нүктесі экранның кез-келген жеріне орналаса алады. Функция мәндеріне байланысты масштабтық коэфиценттер енгізіледі де, экрандық нүктелерге сәйкес түрлендіру формулалары жалпылама жазылады.

У=f(X) функциясының Х є [а, b] аралығындағы графигін тұрғызу үшін, алдымен табуляциялық жолмен есептеп алу қажет: Хі = а + іҺ, Уі =f(Хі), і=1…n, мұндағы Н = (b-а)/n. Ал, N-ді өзіміз таңдап аламыз. Одан кейін мынадай түрлендіру формулаларын пайдаланамыз:

Хі = Хі * k + p,

Уі = Уі * k + q, і=1…n

Мұндағы Р, q координаталар жүйесі бар нүктесінің экрандағы координаталары, ал масштабтық коэфиценттер төмендегі шарттармен анықталады:

Хmax * kх ≤ (225 – p), Уmax * k ≤ q

Мұндағы Х, У – аргументтің және функция мәндерінің ең үлкен шамалары. Барлық параметрлер анықталғаннан кейін функция графигі (Хі, Уі) нүктелерінің арасын қосатын кесінділер арқылы сызылады.

Енді мысал қарастырайық.

У = Х2 функциясының графигін тұрғызайық.

Program G1;

Uses Graph;

Var driver,

regim,

a, b, q, p, i, n, x, y, kx, ky, h : real;

Function f(z: real) : real;

Begin

f:=(x*x);

end;

Begin

driver:=detect;

initgraph (driver, regim, ‘ ‘);

a:=-10; b:=10; n:=60;

h:=(b-a)/h;

p:=300; q:=300; kx:=20; ky:=20;

SetBkColor(0) ;{фон түсі қара}

SetColor(11); {осьтер түсі көгілдір}

Line(0, q, 640, q); Line(p, 0, p, 475);

SetColor(15); {жазу түсі}

OutTextXY(20,270, ‘x-oci’);

OutTextXY(320,20, ‘y-oci’);

SetColor(45); {күлгін график түсі}

x:=a; y:=f(a);

x:=x*kx+p; y:=y*ky+q;

MoveTo(trunc(x), trunc(y));

For i:=10 to n do

Begin

x:=a+i*h; y:=f(x);

x:=x*kx+p; y:=-y*ky+q;

LineTo(trunc(x), trunc(y));

End;

Readln;

CloseGraph;

End.

Қорытынды

Турбо Паскальдың графикалық мүмкіндіктерін толық пайдалану арқылы төмендегі жұмыстарды атқаруға болады:

BD14531_ Екі өлшемді кескіндерді салу (жазықтықтағы алуан түрлі геометриялық фигуралар мен сызбалар, неше түрлі графиктер, диаграммалар, пииктограммалар схемалар және т.б.);

BD14531_ Үш өлшемді кескіндерді салу (кеңістіктегі геометриялық фигуралар мен денелер, беттер, гистограммалар, диаграммалар және т.б.);

BD14531_ Динамикалық кескіндерді салу (кескін проекциясын және қалпын өзгерту, анимациялау, көру эффектісін туғызу және т.б.);

BD14531_ Әртүрлі оқу және ойын программаларын жасақтау.

ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР

  1. Нақысбеков Б.Қ., Халықова Г.З.

Паскаль тілінің негіздері А. (1998)

  1. Бахыт Сыдықов
Алгоритмдеу және программалау негіздерін оқыту
  1. Асылбек Хаметов, Бақытжамал Құтқожина

Турбо Паскаль программалауының бастамалары

Басқа да материалдар Мұғалімдерге Ашық сабақтар Сабақ Жспарлары Оқушыларға Рефераттар ҰБТ Шығармалар СӨЖ

ПІКІР ҚАЛДЫРУ