Приветствую Вас Гость • Регистрация • Вход • RSS
Суббота, 3.12.2016
Главная » Файлы » Қазақша рефераттар » Информатика [ Добавить материал ]

ГРАФИКА с++


Оқушылар,студенттер,мұғалімдер,сайт қолданушылары өз материалыңызбен бөліссеңіз қуанышты болатын едік!

[ Скачать с сервера (30.8Kb) ] 16.02.2014, 02:04

ГРАФИКА

Дербес компьютер экраны текстік және графиктік режимдердің бірінде жұмыс істейді. Графикалық режимде жұмыстың қалай жүргізілетінін қарастырайық. Қазіргі ДК-де, негізінен, растрлық дисплейлер қолданылады. Олардағы бейненің ең кіші элементі болып нүкте – pixel (ағылш., picture element) табылады. Дисплейдің мүмкіндігі – бұл көлденең және тік орналасқан пикселдер саны. Дисплейде бейнеленетін сурет орталық процессор жадысының бейнежады (видеопамять) деп аталатын арнайы облысында кодталып сақталады. Мәліметтер периодты түрде осы облыстан оқылып, бейнесигналдарға түрлендіріледі де экранда бейнеленеді. Сурет кодтарын бейнесигналдарға түрлендіруді арнайы электрондық схема – бейнеадаптар (видеоадаптер) жүзеге асырады. C++ тілінде бейнежадының дербес бөліктеріне енуге, түстерді басқаруға, әр түрлі формада графикалық бейнелер тұрғызуға, текстік хабарламалар шығаруға, курсорды басқаруға мүмкіндік беретін көптеген функциялардын тұратын графикалық кітапхана бар. Бұл функциялардың нақты бейнеадаптерлермен жұмысқа баптау қажетті графикалық драйверді қосу арқылы қол жеткізіледі. Драйвер – бұл ДК-дің құрылғыларын басқаруға арналған арнайы программа. Адаптерлердің барлық түрлері үшін графикалық драйверлер Borland International фирмасымен құрастырылған. Олар BGI (Borland Graphics Interface) кеңеймесімен жеке файлдарда орналасқан.

Графикалық драйверді қосу үшін арнайы initgraph() функциясы қолданылады. Көптеген графикалық функциялар ағымдағы позиция көрсеткіші деген ұғымды қолданады. Ол таңдалған пикселді білдіреді және екі бүтін сан арқылы сипатталады:экранның горизонталь және вертикаль координаттары. Нумерация солдан оңға және жоғарыдан төмен қарай жүргізіледі (нольден бастап).

 

Графикалық жүйені инициализациялау

1. Драйверді және графикалық режимді таңдау detectgraph (&gd, &gm) функция арқылы орындалады.

2. Драйверді жүктеу, графикалық жүйені инициализациялауды initgraph (&gd, &gm, "BGI-файлдың жолы") функциясы атқарады, мұндағы gd және gm айнымалылары қажет драйвер мен графикалық режимнің номерлері. Егер ВGI-файлдар ағымдағы директорияда орналасса, онда initgraph() функциясының үшінші параметрі ретінде бос жолды беруге болады

initgraph (&gd, &gm, " ");

 

Графикамен жұмыс жаса барысында мына әрекеттер тізбегі арқылы графиктік режимді орнату жолдары жазылады:

#include <stdio.h>

#include <stdlib.h>

#include <graphics.h>

void main ( )

{ int gd, gm, error;

detectgraph (&gd, &gm);

initgraph (&gd, &gm,” ”);

error=graphresult ( );

if (error !=grOk )

{ puts ("ошибка графики");

puts (grapherrormsg (error));

exit (1);

}

……………………………. // Тело программы

closegraph ( );

exit (0) ;

}

 

 Қателерді өңдеу. Режимдердің ауысуы

3. Графикамен жұмыс жасағанда қате жағдайларды өңдеу үшін graphresult ( ); функциясы қолданылады. Ол соңғы қолданылып отырған графикалық функцияның аяқталу кодын қайтарады. Қате болмаса, «0» қайтарылады. Әр түрлі қателер типі үшін өздерінің аяқталу коды қарастырылған:

Кесте 3.1. Тұрақтылар кесетесі.

Тұрақтылар Қате коды Хабарлама

GrOK 0 Қате жоқ

GrNoInitGraph

-1

Графика инициализацияланбаған GrNoLoadMcm -5 Драйверді жүктеуге жадының жеткіліксіздігі GrFontNotFound -8 Шрифт файлы табылмаған Қате кодының сәйкес мәнін экранға шығару мүмкіндігі бар. Бұл үшін grapherrormsg (қате коды); функциясы қолданылады. Ол аргумент ретінде берілген аяқталу кодының сипаттамасынан тұратын жолға көрсеткіш қайтарады.

 

Режимдерді ауыстыру.

Дисплейлік адаптердің текстік режиміне уақытша

ауысу үшін мына функция қолданылады:

restorecrtmode ();

Қайтадан графикалық режимге ауысу

setgraphmode (gm);

функциясымен жүзеге асырылады.

Ағымдағы драйвер үшін графикалық режимнің максимал мәнінің номерін

getmaxmode ();

функциясы арқылы анықтауға болады.

 

Графикалық жүйемен жұмыс жасап болған соң, графикаға бөлінген жадыны босату, бейнеадаптер буферін тазарту, алдыңғы текстік режимді қалпына келтіру керек. Барлық әрекеттерді closegraph (); функциясы жүзеге ауыстырады.

 

Түстерді, шрифттерді сызықтардың стилін және бояу стилін тағайындау.

Түстерді көрсету үшін констандаларды пайдалануға болады. Стандартты түстер

палитрасы:

BLACK 0 Черный DARKGRAY 8 темно-серый

BLUE 1 Синий LIGHTBLUE 9 светло-синий

GREEN 2 Зеленый LIGHTGREEN 10 светло-зеленый

GRAY 3 Серый LIGHTCYAN 11 светло-бирюзовый

RED 4 Красный LIGHTRED 12 светло-красный

MAGENTA 5 Малиновый LIGHTMAGENT

A 13 светло-малиновый

BROWN 6 Коричневый YELLOW 14 Желтый

LIGHTGRAY 7 светло-серый WHITE 15 Белый

 

Фон түсін мына функция арқылы басқаруға болады:

setbkcolor (Color);

Ағымдағы түсті мына функциямен тағайындауға болады:

setcolor (Color);

 

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

тағайындау мына фнкция арқылы жүзеге асырылады:

settextstyle (шрифт, бағыты, өлшемі);

Терезелер және координаттармен жұмыс

1. Экранды тазалау мына функция арқылы жүзеге асырылады:

cleardevice ();

2. Берілген графикалық режимде горизонталь және вертикаль бойнша нүктелер

координаттарының максимальді мәнін

getmaxx ();

(горизонталь бойынша максимальді координатаны қайтарады),

getmaxy ();

(вертикаль бойынша максимальді координатаны қайтарады)

функцияларының көмегімен анықтауға болады.

3. Графикалықэкрандағы терезені ашу. Экран нүктелерінің бәр массиві ішінен

ішкі массив - өзінің координаттары бар тікбұрышты терезе ашуға болады. Ол

төмендегі функция арқылы жүзге асырылады:

setviewport (xl, yl, x2, y2, clip);

мұндағы xl, yl – терезенің жоғары сол жақ бұрышының координаттары; х2, у2 –

терезенің төменгі оң жақ бұрышының координаттары; clip – қима (отсечка).

Егер clip параметрі 1-ге тең болса, терезеде симай тұрған сурет элементтері

қиылып тасталады,ал егер 0-ге тең болса терезе шекарасы өзгертіледі.

 

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

Шығарудің стандартты printf(), puts() функциялары графикалық режимде де жұмыс

жасайды. Бірақ онда символдар түрі, өлшемі шектеулі. Шығарылатын текст стилі

settextstyle() функциясымен беріледі.Графикалық текстті шығарудың екі функциясы

бар:

outtext (sp);

ажол ғымдағы көрсеткіштен бастап шығарылады; sp – шығарылатын жолға

Көрсеткіш;

outtextxy (x, у, sp);

жол (х, у) позициясынан бастап шығарылады.

Графикалық объектілерді салу.

1. Сызықтарды үш түрлі функция көмегімен салуға болады:

line (x1, y1, x2, y2);

мұндағы x1, y1 – кесінді басының координаттары; х2, у2 – кесінді аяғының

координаттары.

linerel (dx, dy);

мұндағы dx, dy – ағымдағы нүкте координаттарының өсімшесі. Кесінді ағымдағы

нүктеден жаңа координатты нүктеге дейңн салынады. Көрсеткіш бұрыңғы нүктеден

жаңасына ығысады.

lineto (x, у);

мұндағы х, у – кесінді аяғының жаңа координаттары. Көрсеткіш бұрыңғы нүктеден

жаңасына ығысады.

Кесінділер setlinestyle() функциясы арқылы тағайындалған ағымдағы

стильмен, және setcolor() функциясы арқылы тағайындалған ағымдағы түспен

салынады.

3. Тіктөртбұрыш контурын мына функциямен салуға болады:

rectangle (x1, y1, x2, y2);

мұндағы x1, y1 – жоғары сол жақ бұрыш координаттары; х2, у2 – төменгі оң жақ

бұрыш координаттары.

Егер квадрат салу керек болса, горизонталь және вертикаль бойынша пиксельдер

санын коррекциялау керек. Пиксельдер пропорциясын

getaspectratio (&xasp, &yasp);

функциясының көмегімен анықтауға болады.

xasp/yasp қатынасы пиксель өлшемдрінің горизонталь және вертикаль бойнша

қатынасы.

4. Сынық сызықты

drawpoly (төбелер саны, бүтін массивке Көрсеткіш);

функциясы салуға мүмкіндік береді.

Массивтің әрбір екі саны сынық сызықтың кезектегі қос координатын білдіреді.

5. Қисықтарды салу үшін мынадай функциялар қолданылады:

Вычерчивание окружности

circle (x, у, радиус);

мұндағы х, у – центр координаттары; радиус – горизонталь бойынша шеңбердің

пиксельдегі радиусы.



Похожие материалы

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

Категория: Информатика | Добавил: Admin
Просмотров: 2270 | Загрузок: 487 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]