Программалау тілдері жоғары оқу орындарына арналған оқулық


 ГРАФИКАЛЫҚ РЕЖИМДЕ ЖҰМЫС ІСТЕУ



жүктеу 2,9 Mb.
Pdf просмотр
бет62/82
Дата19.11.2018
өлшемі2,9 Mb.
#20460
түріПрограмма
1   ...   58   59   60   61   62   63   64   65   ...   82

 
171 
11. ГРАФИКАЛЫҚ РЕЖИМДЕ ЖҰМЫС ІСТЕУ  
С  тілінде  растрлық  графика  жҧмыс  істейді,  оның  тақырыптық  файлы 
graph.h.  График  нҥктелерден  –  пиксельдерден  тҧрады.  Пиксель  –  экранның 
адрестелетін  ең  кіші  элементі.  Алдымен,  графика  шығара  алатын  бейне-
режимді іске қосу керек. Мҧнда экранның пиксельмен берілген мӛлшері және 
тҥстер саны беріледі.      
Графикада  ҥш  координаталық  жҥйе:  абсолюттік,  салыстырмалы  және 
масштабталған  жҥйе  қолданылады.  Тіке  және  кӛлденең  ӛстер  бойынша 
пиксельдер саны экран типіне байланысты болады. 
Абсолюттік  координатада  координаталар  басы  –  (0;0)  нҥктесі  сол  жақ 
жоғарғы  бҧрышта  болып  саналады,  х  координатасы  солдан  оңға  қарай,    у 
координатасы жоғарыдан тӛмен қарай ӛседі.     
Салыстырмалы  режимде  координаталар  басы  экранның  кез  келген  нҥкте-
сіне ауыстырыла алады.      
Масштабталатын  режимде  экран  бетінде  масштабталған  координаталар 
беруге болады, онда х пен у ӛстері бойынша минимум және максимум мәндер 
енгізіп, жҧмыс істеуге мҥмкіндік бар.  
Жалпы абсолюттік графикалық режимде  (11.1 сурет) 

 
әрбір пиксель берілген 16 тҥстің біріне боялады;   

  (0,0)  – экранның сол жақ жоғарғы бҧрышы координатасы;  

   (639,479) – оң жақ тӛменгі бҧрышының координатасы  болады;  

 
әртҥрлі фигураларды экранға шығару ҥшін алдын ала графикалық режимді 
іске қосып алу керек.    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Жалпы,  дисплей  адаптерлері    графикалық  режимде  200,  350,  600  нҥкте-
лерден  тҧратын 
экран  жолдарының  әрқайсысында  640,  720,  800  нҥктелер  тізбегін  бей-
нелей алады.  Мҧндағы нҥкте деп отырғанымыз – 
 кӛлемі 0,8х1 мм
2
 шамасында болып 
келген (CGA) кішкентай тіктӛртбҧрыш, яғни пиксель.  
x 

(0, 0) 
( 0, 479) 
               
(639, 0) 
           (639, 479)       
      
(320, 240)       
11.1-сурет. Экрандағы нҥктелердің  координаталары 


 
172 
Әрбір нҥктенің координаталары екі бҥтін санмен (х, у) анықталады. Дисплей 
экранына график салу ҥшін оның нҥктелерінің координаталарын кӛрсету қажет. 
Координаталар  басы  (0,0)  болып  экранның  сол  жақ  жоғарғы  бҧрышы 
есептеледі. Х координаталары (бағаналар немесе позициялар нӛмірлері) солдан 
оңға қарай, ал у мәндері (жолдар немесе қатарлар) жоғарыдан тӛмен қарай ӛсіп 
отырады.  Мысалы,  VGA  адаптерінің  экран  бҧрыштарының  координаталарын 
х=0..799, y=0..599 аралығында кӛрсету қажет. Экранда х ӛсі солдан оңға қарай, 
Y  ӛсі  жоғарыдан  тӛмен  қарай  бағытталған,  ал  оның  шеткі  нҥктелерінің 
координаталары суретте кӛрсетілген.   
Олардың  ең  жоғарғы  мәндері  пайдаланылған  экран  адаптеріне  тәуелді 
болады,  яғни  (0,0)..(320х200),  (0,0)..(640х480),  (0,0)..(800х600)  аралықтарында 
және т.б. болуы мҥмкін. Сонымен, графикалық режимде экрандағы кез келген 
объект кӛрініп тҧрған нҥктелер тобынан тҧрады. Мәтіндік режимнен графика-
лық  режимге  кӛшкенде  экран  тазартылады.  Графикалық  режимде  экраннан 
курсор  кӛрінбейді.  Дисплей  экранының  бетіне  (кейін  қағазға)  нҥкте,  тҥзу 
немесе  қисық  сызық,  шеңбер,  эллипс  және  кез  келген  тҧйық  сызық  сызып 
шығаруға болады. Сонымен қатар тҧйық сызықтардың ішін әртҥрлі тҥске бояп 
қою мҥмкіндіктері де бар. Сызықтарды жылжыту, айналдыру және басқа орын-
ға кӛшіру арқылы кӛрнекі бейнелер мен мультфильмдер жасауға болады.  
График  тҧрғызу  ҥшін  оны  шығару  немесе  бастау  нҥктесін  кӛрсету  қажет. 
Мәтіндік  режимде  ол  курсор  позициясы  болып  саналады,  ал  графикалық  ре-
жимде  кӛрініп  тҧратын  курсор  жоқ,  бірақ  экранда  кӛрінбейтін  курсор  тәрізді 
сілтеме белгі CP (current poіnter) бар. Негізінде оны да курсор деп қабылдауға 
болады.  
Графикалық режимдегі жҧмыстарды атқаратын Турбо  С нҧсқасында бірсы-
пыра  графикалық  функциялар  бар,  енді  біз  солардың  негізгілеріне  тоқталып 
ӛтеміз.  
Графикалық режимде жҧмыс істеу былай басталады: 
#include   
#include  
#include   
void main()  
{ int gdriver = DETECT; //драйвер   
   int gmode;            //режим аты   
 int errorcode;      // қате коды   
 initgraph (&gdriver,&mode,“C:\\TC\\bgi\\”); 
errorcode = graphresult(); 
if errorcode != grOk) //іске қосу қатесі 
{printf(“Қате: %d\n”, errorcode);   
 puts("Аяқтау үшін ENTER басыңыз");   
 getch ();   
 return; 
}  


 
173 
 ... Ары қарай программа мәтіні...
 
  getch();   
  closegraph ();  
} 
11.1. Графикалық режим орнату, одан шығу, мәтін жазу,                         
сызық салу функциялары 
 Графикалық режим драйверін іске қосу функциясы 
initgraph(&Driver, &Mode, Path); 
Driver  параметрі  бейнелік  жҥйе  драйверін  анықтайды,  Mode  параметрі  
бейнелік  жҥйе  жҧмыс  режимін  береді,  ал  Path  параметрі  драйвер  файлының 
орнын  кӛрсетеді.  Кӛбінесе  Driver  параметрі  мәні  ретінде  detect  болатын  бҥтін 
константа  қолданылады.  Мҧндайда  initgraph  функциясының  ӛзі  графикалық 
драйвер  типін  анықтап,  ең  дҧрыс  режимді  таңдап  алады.  Тақырыптық  файлы: 
 
Драйвер  дҧрыс  оқылған  соң,  initgraph()  функциясы  4К  кӛлемінде  (келісім 
бойынша) ішкі  графикалық буфер ҧйымдастырады да, экран тҥсі, сызықтар тҥсі 
анықталып,  дисплей  адаптері  графикалық  режимге  кіреді.  Экран  тазаланып, 
курсор сол жақ жоғарғы бҧрышқа орнатылады.  
Егер BGI-файлдар ағымдағы бумада болса, initgraph() функциясының ҥшінші 
параметрі ретінде бос орын мәнін беруге болады 
initgraph(&Driver, &Mode, " "); 
Графикалық    режимнен  шығу  және  оған  бӛлініп  берілген  жады  бӛлігін 
босату  ҥшін,  яғни  бейнеадаптер  буферін  тазартып,  бҧған  дейінгі  мәтіндік 
режимді қалпына келтіру мақсатында мына функция қолданылады 
closegraph(); 
Графикалық  режимде  сызық  тҥстерін,  тҧйық  сызықтар  ішін  тҥрлі  тҥске  бояуға 
болады.  Ол  ҥшін  мәтіндік  режимдегідей  тҥстердің  кодтары  және  олардың  ағылшынша 
атаулары қолданылады. 
Графикалық режимнен уақытша мәтіндік режимге ауысу мақсатында мынадай 
функция қарастырылған 
 
 
 
restorecrtmode(); 
Ол    initgraph()  функциясын  пайдаланғанға  дейін  болған  мәтіндік  режимді 
қайта орнатады, буферде  (экран кӛрінісі де) сақталған мәтін қалпына келмейді, 
ӛйткені ол initgraph() функциясы арқылы ӛшірілген болатын.  
Графикалық режимге қайтып оралу мына функция арқылы атқарылады 
 
 
 
setgraphmode(gm); 
Функция аргументі ретінде қолданылған драйверге қатысты режимнің бҥтін 
сан тҥріндегі нӛмірі қарастырылады. 
 
Курсор орнын анықтау функциялары –  getx();  gety(); 
Функциялары курсор тҧрған орын координаталарын  х  (у)  береді.  
 
 
 
maxx();  getmaxy(); 


жүктеу 2,9 Mb.

Достарыңызбен бөлісу:
1   ...   58   59   60   61   62   63   64   65   ...   82




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау