С++ графикалық мүмкіндіктері



I. Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 5
II. Теориялық бөлім.
1 С++ графикалық мүмкіндіктері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
1.1 Компьютер экрандағы нүктелердің координаталары ... ... ... ... ..8
1.2 Бейнемен жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 9
1.3 Экрандық обьект ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .11
2 Анимация құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..14
2.1 Функция графигін тұрғызу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .15
2.2 Экрандағы қозғалысты бейнелеу ... ... ... ... ... ... ... ... ... ... ... ... ...16
3 Динамикалық айнымалының көмегімен фигуралардың бейнелерін қалыптастыру және орын ауыстыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... 20
3.1 Мәтіннің орнын ауыстыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .21
3.2 Экрандық обьектілердің орнын ауыстыру ... ... ... ... ... ... ... ... . 23
3.3 Координат құрылымының алмасуы ... ... ... ... ... ... ... ... ... ... ... . 25
3.4 Бейнебетпен жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 26
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..28
III. Әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .29 Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 30
Компьютер эрасының басында программистер есептеу машинасының құлы болған етін.
Сол кездердегі программа құрушылар өздерінің командаларын тек қана бір тілде жазуға мәжбүр болды, яғни тек қана екілік код түрінде жазды, сонымен программистер нөл мен бірліктің ізбасары ретінде көрінді. Уақыт өте келе алгоритмдерде күрделіне түсті, сонымен бірге программалауға көп көңіл бөлу қажет болды. Осылайша көптеген қиындықтарды бастан кешіре келе өмірге Фортран, Бейсик, Паскаль сияқты өте әйгілі, жоғарғы сатылы тілдер пайда болды.
ХХІ – ғасыр адамзат дамуының жаңа сатысы – ақпаратты қоғамға өтумен сипатталады.
Қазіргі ақпарат заманында информация ағымын компьютер информацияны жеделдетіп өңдеудің негізгі құралы болып табылады. Инженерлік – техникалық, экономикалық есептерді шешу және мәліметтерді компьютер арқылы автоматтандырып өңдеу мықты программаларды талап етеді.
Психологтар адамның бір мезгілде ондаған бірліктің аумағымен бірдей ақпататты қабылдай алатынын бұрыннан көрсеткен. Сөйтіп, программалық қамтамассыз етуді дайындағанда программиске көрінетін компоненттерінің санын кішірейтуге талап қойылады. Адамзат бірнеше өте тиімді декомпозиция жолдарын, яғни үлкен есептерді шағын есептерге бөлуді ойлап шығарған . Модульдік тәсіл көптен бері қолданып келеді, онда үлкен программалар бөлек дербес модульдерге бөлінеді. Программалар көптен бері «Жоғарыдан төмен » және құрылымдық декомпозицияны қолдану арқылы жасалынады. Осы тәсілге негізделген әдістердің ортақ сипаты болады: олардың ішінде деректер және оларды өңдейтін код бір – бірінен бөлек тұрады.
70-80 жылдары Норвегияның қарулы күштерінде қолданылған Sumila тілі класс түсінігінде құрылған өте алғашқы тіл болып табылды.
Шамамен сол жылдары жаңа программалау тілдерінің стандарты болып бекітілген, үлкен қуатты иеленетін, эффективті және бейімді атағына ие болған С тілі пайда болды. Бұл тіл ең жоғарғы сатыдағы және компьютерде жұмыс істеуге өте тиімді тіл болып табылды. Мысалы: мәліметтермен алмасуды іске асыратын, және тағы басқа.
1978 жылдары екі тілдің тиімді жақтарын біріктіруге арналған алғашқы қадамдар іске асты, нәтижесінде «Си класстармен» тілі пайда болды. . С++ жұмыс версиясы 1983 жылы жасалынды. Сол уақыттан бастап тілдің дамуы басталды және Си мен С++ стандарттарының жобасының бірнеше версиялары баспада жарияланды.
Бірнеше жылдар өткеннен кейін ол қазіргі біздің кең түрде пайдаланып жүрген С++ тілі болып қабылданды. Уақыт өткен сайын программаға деген сұраныстар арта түсіп, соның сарынында тілде өзгеріске ұшырайды. Қазір С++-тің бірнеше платформасы және әдістері бар. Солардың ішінде қолданыста жүрген Microsoft C++(Dos, Windows) және Borland C++ (Dos, Windows), Visual C++ (Windows), GNUC++(Linux).
1. Информатика, А.В. Могилев,
Н.И. Пак, Е.К. Хеннер. 2000ж.
2. С++ для начинающих, Липпман. 1989ж.
3. Структурный подход к программированию,
М..: Мир.,Дж. Хьюз, Дж. Мичтом. 1980ж.
4. Культин Н. “С/С++” M:2001ж.

I.
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... . 5
II. Теориялық бөлім.
1. С++ графикалық
мүмкіндіктері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... 7
1. Компьютер экрандағы нүктелердің
координаталары ... ... ... ... ..8
2. Бейнемен
жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... . 9
3. Экрандық
обьект ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ..11
2. Анимация
құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... 14
1. Функция графигін
тұрғызу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
..15
2. Экрандағы қозғалысты
бейнелеу ... ... ... ... ... ... ... ... ... ... ... ... ... 16
3. Динамикалық айнымалының көмегімен фигуралардың бейнелерін қалыптастыру
және орын
ауыстыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... .20
3.1 Мәтіннің орнын
ауыстыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..21
3.2 Экрандық обьектілердің орнын
ауыстыру ... ... ... ... ... ... ... ... .. 23
3.3 Координат құрылымының
алмасуы ... ... ... ... ... ... ... ... ... ... ... .. 25
3.4 Бейнебетпен
жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
26

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... .28
III. Әдебиеттер
тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ...29
Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... . 30

КІРІСПЕ

Компьютер эрасының басында программистер есептеу машинасының құлы
болған етін.
Сол кездердегі программа құрушылар өздерінің командаларын тек қана бір
тілде жазуға мәжбүр болды, яғни тек қана екілік код түрінде жазды, сонымен
программистер нөл мен бірліктің ізбасары ретінде көрінді. Уақыт өте келе
алгоритмдерде күрделіне түсті, сонымен бірге программалауға көп көңіл бөлу
қажет болды. Осылайша көптеген қиындықтарды бастан кешіре келе өмірге
Фортран, Бейсик, Паскаль сияқты өте әйгілі, жоғарғы сатылы тілдер пайда
болды.
ХХІ – ғасыр адамзат дамуының жаңа сатысы – ақпаратты қоғамға өтумен
сипатталады.
Қазіргі ақпарат заманында информация ағымын компьютер информацияны
жеделдетіп өңдеудің негізгі құралы болып табылады. Инженерлік – техникалық,
экономикалық есептерді шешу және мәліметтерді компьютер арқылы
автоматтандырып өңдеу мықты программаларды талап етеді.
Психологтар адамның бір мезгілде ондаған бірліктің аумағымен бірдей
ақпататты қабылдай алатынын бұрыннан көрсеткен. Сөйтіп, программалық
қамтамассыз етуді дайындағанда программиске көрінетін компоненттерінің
санын кішірейтуге талап қойылады. Адамзат бірнеше өте тиімді декомпозиция
жолдарын, яғни үлкен есептерді шағын есептерге бөлуді ойлап шығарған .
Модульдік тәсіл көптен бері қолданып келеді, онда үлкен программалар бөлек
дербес модульдерге бөлінеді. Программалар көптен бері Жоғарыдан төмен
және құрылымдық декомпозицияны қолдану арқылы жасалынады. Осы тәсілге
негізделген әдістердің ортақ сипаты болады: олардың ішінде деректер және
оларды өңдейтін код бір – бірінен бөлек тұрады.
70-80 жылдары Норвегияның қарулы күштерінде қолданылған Sumila тілі
класс түсінігінде құрылған өте алғашқы тіл болып табылды.
Шамамен сол жылдары жаңа программалау тілдерінің стандарты болып
бекітілген, үлкен қуатты иеленетін, эффективті және бейімді атағына ие
болған С тілі пайда болды. Бұл тіл ең жоғарғы сатыдағы және компьютерде
жұмыс істеуге өте тиімді тіл болып табылды. Мысалы: мәліметтермен алмасуды
іске асыратын, және тағы басқа.
1978 жылдары екі тілдің тиімді жақтарын біріктіруге арналған алғашқы
қадамдар іске асты, нәтижесінде Си класстармен тілі пайда болды. . С++
жұмыс версиясы 1983 жылы жасалынды. Сол уақыттан бастап тілдің дамуы
басталды және Си мен С++ стандарттарының жобасының бірнеше версиялары
баспада жарияланды.
Бірнеше жылдар өткеннен кейін ол қазіргі біздің кең түрде пайдаланып
жүрген С++ тілі болып қабылданды. Уақыт өткен сайын программаға деген
сұраныстар арта түсіп, соның сарынында тілде өзгеріске ұшырайды. Қазір С++-
тің бірнеше платформасы және әдістері бар. Солардың ішінде қолданыста
жүрген Microsoft C++(Dos, Windows) және Borland C++ (Dos, Windows), Visual
C++ (Windows), GNUC++(Linux).
С++ тілі программалауда обьектілерді міндетті түрде қолдануды қажет
етпейді. Программалық қамтамассыз етуді шығаратын біраз формалар Си және
С++ компиляторларды дайындап жасайды. Borland International фирмасының
программалау жүйелері басқа фирмаларға қарағанда программаны дайындауда
кешенді жолды қолданумен ерекшеленді.Ол дайындаушының интегралдау ортасын
программалау жүйесіне енгізумен білінеді, ол жалпы басқарумен
программалардың бастапқы мәндерін кіргізу үшін мәтіндік редакторын және
отладталған құралдардың жиынтығын біріктіреді.
1989 жылы осы фирмамен С++ компиляторы енгізілген, DOS операциялық
жүйеде жұмыс істейтін TurboC++ жүесін шығарады. 1992 жылдан бастап DOS және
Windows үшін С++ компиляторлары бар Borland C++ жүйесі шығарылады. 1997
жылдан бастап С++ компиляторлары Borland C++ 5,0 версиясын қолданады,
бұнда Windows үшін компилятор 1486 және Pentium процессорлары бар ДЭЕМ
үшін 16 разрядты және 32 разрядты варианттар дайындауға мүмкіндік жасады.
СиС++ программасы бөлек трансляция жасайтын бір немесе бірнеше бастапқы
файлдан тұрады .
Адамның қызметінің әр түрлі салаларында программаларды қолдану – барлық
программалық қамтамассыз етудің сенімділігін арттыру қажеттілігіне алып
келді.
Программалау технологиясы – бұл программалауды дайындаудың әдістері мен
тәсілдерінің жиынтығы және осы әдістер мен тәсілдерді қолданудың тәртібі.
Мен осы С++ тіліндегі ең қызықтысы, әрі ең тартымдысы болып Си-дегі
графикамен жұмыс болғандықтан, осы тақырыпты курстық жұмысымның негізі
ретінде таңдадым.

1 С++ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ

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

Графикада тапсырманы шешпес бұрын біз мынаны есте сақтауымыз қажет:
Графикалық режимде экран өз алдына нүктелер бір тұтасығын қояды, олардың
әрқайсысы 16 түстің біреуімен боялуы мүмкін;
Координат нүктесі солдан оңға қарай және жоғарыдан төменге өсуі мүмкін.
Сол жақ жоғарғы нүктесі(0,0) координат иемденеді, ал оң жақ төменгісі-
(639,479);
Программа экранға графиканың примитиві (сызықтар, айналасын, тік
бұрыш) шығару үшін, графикалық режимді міндетті түрде инацилиздеу керек.
Программаның графикалық режимінің шаблоны мына түрде беріледі:
графикалық программаның шаблоны
#include graphics.h
#include conio.h
#define PATHTODRIVER "c: \\borlandc\\bgi\\"
void main(void)
{
int gdriver = DETECT; драйвер
int gmode; режим
int errorcode; қате коды
initgraph(sgdriver, Sgmode, PATHTODRIVER); errorcode = graphresult();
if (errorcode != grOk) инициализация қатесі
графикалық режим {
printf("Ошибка: %d\n", errorcode);
puts("Программаны аяқтарда Enter батырмасын басыңыз'
getch();
return;
ары қарай программа инструкциясы
closegraph(); Графикалық режимнің аяқталуы
TImageList
Графикалық бейнелердің өлшемдерінің ұқсастығына және K *k,
бірдейлілігіне байлансты арнайы жиында бізге керекті бір-біріне ұқсас
суреттерді интервалдық мәні 0-ден п-1 индексі арқылы таңдауға болады.
Графикалық жиын үлкен биттік бейнені немесе пиктограмма салу кезінде
эффективті қызмет көрсетуде қолданылады .

1.1 Компьютер экранындағы нүктелердің координаттары
Графикалық обьектілердің қалай жұмыс істейтіндігін түсіну үшін ең
бірінші біз компьютер экранында нүктелер қалай орналасқандығын білуіміз
қажет. Экран екі өлшемді обьект болғандықтан, сол себепті ондағы нүктелер х
және у координатасымен беріледі.
Экрандағы нүктелер пиксель деп аталады. Олардың саны әр түрлі болуы
мүмкін. Ол монитордың сапасына байланысты болады. Координата бас нүктесі
экранның сол жақ жоғарғы бұрышында орналасқан Х осінің ұзындығы -640
нүктеге, ал У осінің ұзындығы – 480 нүктеге тең. Х осі оңға қарай , У осі
төменге бағытталған.
Компьютер экранындағы координат бастамасы оның сол жақтағы жоғарғы
бұрышында орналасады – анықтау бойынша бұл нүкте (0,0). Х координатасы
солдан оңға дейін ұлғаяды , бірақ у координатасы – жоғарыдан төмен .
Компьютер экранында тек қана соңғы нүкте саны ғана таныстырылуы мүмкін.
Нақты нүкте саны сіздің видеокартаңыздың типіне байланысты болады. Мысалы:
егерде сіздің компьютеріңізде экрандық рұқсат 1024*768 болса, онда сіздің
экраныңыз 1024 нүкте горизонталь және 768 вертикаль нүктелерден тұратын
болғандығы. Компьютер экранының өлшеміне байланысты , компьютер берілген
бір рұқсат бойынша жұмыс істейді.
Типтік экрандық рұқсаттар.
Осындай координат системасының минималды бірлігі пиксель (pixel) болып
табылады.
Координаттарды былай анықтауға болады, пиксельдің орнына дюймді немесе
сантиметрді қолдануға болады. Пиксельдік жүйе бойынша нүкте координаттары
пиксельдегі ара-қашықтықпен анықталады, яғни координат басы экранның сол
жақ жоғарғы бұрышы анықталады.

2. Бейнелермен жұмыс

Бейнелермен жұмыс кезінде статикалық бейнелерді экранда формирлеп,
оларды бірнеше әртүрлі видеобеттерде есте сақтау және олардың қажетті
өлшемі бойынша қажетті беттерді дайындау керек.Әр қилы бейнелерді формирлеп
және оларды ОП- да немесе файлда есте сақтап, содан кейін ғана экранға
шығаруға болады. Осы бейнелерді экранда қозғалтуға, орнын ауыстыруға
болады. Егерде бірнеше фаз қозғалысты есте сақтайтын болсақ, осы
бейнелердің қозғалысын барлық обьектілерден және олардың бөлшектерін қосқан
кезде иллюзия қозғалысын құруға болады. Сақтауда және бейнелерді қозғалту
кезінде динамикалық айнымалы қажет болады. Оларды графикалық режимде экран
бөліктерін сақтау кезінде қолданылады.
Мысалы: бейнені қозғалту үшін немесе фрагментті сақтау үшін.
Бейнені салу үшін мына келесі функцияны қолдануға болады:
1) нүкте арқылы: putpixel;
2) сызық арқылы: line,linerel, lineto, drawpoly;
3) тік бұрыш фигурасы :bar, bar3d, rectangle;
4) қисық сызықты фигурасы:arc, circle, ellipse, fillellipse, pieslice,
sector.
Бейнені сақтауға getimage, imagesize, putimage функциясы қолданылады.
Биттік бейнені сақтау үшін алдымен қажетті өлшем берілу қажет, яғни
malloc функциясы көмегімен. ОП қажетті өлшемді анықтау, берілген тікбұрыш
экранындағы биттік бейнені сақтау үшін imagesize функциясы көмегімен іске
асады.
Imagesize функциясының прототипі:
Unsigned far imagesize (int left, int top, int right, int bottom);
left, top- тік бұрыштың сол жақ бұрышындағы координаты;
right, bottom- тік бұрыштың оң жақ төменгі бұрышындағы координаты.
Getimage функциясы ОП-дағы биттік бейнені тік бұрышты экран бөлігін
сақтайды, анықталған координаттармен, яғни олардың сол жақ жоғарғы жағы
және оң жақ төменгі бұрышын.
Getimage функциясының прототипі:
Void far gitimage (int left, int top, int right, int bottom. Void far *
bitmap);
Putimage функциясы экранда берілген орында тік бұрыштың бейнесін шығару
үшін арналған.
Putimage функциясының прототипі:
Void far Putimage(int left, int top, Void far * bitmap, int op);
Ор=0 мәнін қолданғанда экранда бейненің көшірмесі шығады;
ор=1 ескі бейне экран бетінен тазартылады.

• Сурет – графика жиынын құрайды, ол кез-келген графикалық бейнелердің
класстарын құрауы да мүмкін. Сонымен TPicture жиын классы биттік бейне
құрайды, пиктограмма , метафайл немесе кейбір графикалық типтерді құрайды.
Суреттермен жұмыс істейтін болсаңыз сіз графикалық обьектінің TPicture
жиыныны арқылы жұмыс істейсіз..
Биттік бейнені көшіру
С++ -те бейнені графикада көшіру төрт әдіспен атқарылады. Яғни олар
мыналар.
Қажетті нәтиже Әдіс
Графиканы толық көшіру Draw
Масштабтау арқылы көшіру StretchDraw
Канваның тікбұрышты бөлігін көшіру CopyRect
Расторлы операциямен көшіру BrushCopy

1.3 Экран обьектісі
Графиканы жете меңгеру үшін мен экрандық обьектілердің класын
дайындадым.
Бұл класс franca.h.бастапқы файлдан құралған. Осылардың кейбірі:
• ақпараттық рамкалар
• квадраттар
• айналасы
Экрандағы квадраттар және айналасы олардың центрі бойынша анықталады, ал
рамкалары- сол жақ жоғарғы бұрыш координатасымен.

Экрандық бейнелер үшін келесі операцияларды орындауға болады:
• Оларды экранның кез –келген орнына жылжытуға болады.
Place(x,y) функциясы (х,у) координата нүктесінде обьектіні ауыстырады.
Мысалы: ball . place (20.20);

• Экранда оларды бейнелеуге болады (обьектілер автоматты түрде
бейнеленбейді ). Show функциясы обьектіні ағымды экран нүктесінде
бейнелейді (салады) .
Мысалы: ball. Show( );

• Оларды экранда бетінде тазалап тастауға болады. Erase( )функциясы
обьектіні жояды (тазалайды), оны ақ түске бояйды.
Мысалы: ball. Erase(); Обьектіні жылжытар(орын ауыстыру) алдында оны
өшірмеу қажет.

• Олардың өлшемін өзгертуге болады. Үнсіз келісім бойынша экран обьектісі
20 пиксельге тең. Оның өзгеруіне бір немесе екі аргументтің тапсырмасы
қажет болады. Өлшемді өзгерту үшін екі resize () және absize () функциясы
қажет.

• Олардың түсін өзгертуге болады. Ол үшін color( ) функциясы қажет болады.
Негізінде үнсіз келісім бойынша экрандық обьектілер құрылуы бойынша ішкі
жағы ақ түспен боялған, ал контуры қара түске боялған. Бір түсті белгілей
тұра, обьектіні осы түс бойынша бояп, ішкі жағын да , контурды да солай
бояуға болады. Мысалы: ball. Color(2);. Обьектіні екі түспен бояуға
болады.Мысалы: ball. Color(2,4);.
Box экрандық обьектісі арқылы кейбір арнайы операцияларды орындауға
болады:

• Ақпараттық рамка ішіне хабар енгізуге болады. Мысалы: егер message
ауыспалы
Box типін жарияласақ , онда message. Say( “Here!”)инструкциясы; бұл ішкі
рамкада “Here” хабарының пайда болуына себепкер болады. Аргумент сапасы
бойынша барлық сандар немесе жүзуші нүкте сандарын қолдануға болады.
Информациялы рамканың іс-қимылы (әрекеті) басқа экрандық обьектілердің
іс-қимылынан айырмашылығы бар, бірақ олар автоматты түрде пайда болады. Тек
қана егерде біз Say( ) функциясын қолдансақ қана. Басқа сөзбен айтқанда ,
рамканы экранға шығарып жатпаймыз. Сонымен қатар, рамка координаты өзінің
сол жақ жоғарғы бұрышына қатынасады, центріне емес.

1-кесте
Экрандық обьектілерді басқару функциялары.

Хабар Анықтама Аргументтер
Place (float,float) Обьектіні қозғалту Х,у координаты
Show() Экранға обьектіні шығаруЖоқ
Экранды обьектіден
Erase() тазарту Жоқ
Обьектінің өлшемін
Resize(float) өзгерту Жаңа өлшем
Обьектінің абсолютті
Absize(float) өлшемін өзгерту Жаңа өлшем
Обьектінің түсін өзгерту
Color(int,int) Масштабты өзгерту Түс
Scale(float,float) Есеп берудің бастамасын Жаңа масштаб
Origin (float,float) өзгерту Х,у координаты

Ақпараттық рамкалар сонымен қатар экрандық обьектілер болып саналады,
оларға place(), show() және erase() функциясын қолдануға болады.
Circle() обьектісін жариялаған кезде үнсіз келісім бойынша, оның айналасы
20 пикселге тең.
Содан кейін оның өлшемін өзгертуге болады. Мысалы: келесі фрагментте
диаметрі 10 пиксель келтірілген:
Circle mycircle;
Mycircle. Resize(10);
Түс
Экран обьектілерін әр түрлі түстерге бояуға болады. Обьектіде екі түс
қатысуы мүмкін – ішкі және контур түсі.
Мысалы: айналасы қара, ішкі жаға қызыл болуы мүмкін. Түстер келесі
сандармен кодталады:
0 – ақ
1 - қызыл
2 – ашық жасыл
3 – көгілдір
4 – ашық көк
5 – күлгін
6 – сары
7 – қараша
TPaintBox
Бұл функция бізге графикада тек қана тік төрт бұрышты аймақта сурет салуға
мүмкіндік береді.Егерде TpaintBox қолданылса, онда программада сурет салу
жолдың жоғарғы жағында атқарылады, яғни OnPciinl көмегімен.Түс және шрифт
Color и Font арқылы орындалады. Егерде барлық формада сурет салғыңыз келсе,
онда OnPaint формасын қолданған жөн.
Экран обьектілерін құрған кезде үнсіз мына жағдайлар орындалады:
♦ Ақпараттық рамкалар бірінен кейін бірі вертикалды экранның оң жағында
орналасады;
♦ Барлық обьектілер ақ, қара контурмен құралады.
Координаттар пиксельде берілгеніне қарамастан, экрандық обьектілер
координат және өлшем жүзуші нүкте санын қолдайды.
Келесі программалық кодттың фрагменті нүктені (50,50) орталықта құрып және
оны экранда көрсетеді.
#include“franca.h”
Void mainprog()
{
Int x,y;
X=50;
Y=50;
Circle mycircle;
Mycircle. Place(x,y);
Mycircle.show()
}
Программадағы қолданған барлық экран обьектілер алдын – ала жариялануы
керек.
Кез-келген сурет салу, яғни нүктені экран ауданынан басқа жерде
салуымыз, бізге диалогтық терезеден қате жайлы хабардың пайда болуына
әкеліп соқтырады, яғни Object out of range.
(х немесе у) координаты берілген қателік экранның сол жақ бұрышында пайда
болады.
Енді мен “Hello World” хабарын графикалық Windows-тің графикалық
интерфейс жүйесін пайдаланып экранға шығарамын.
♦ File(New Application) менюін таңдап, жаңа проект құрамыз. Сонымен жаңа
конструктор формасын ашамыз. Обьект инспекторы оның сыйымдылығын көрсетеді.
♦ Caption сыйымдылығынан Properties бетін таңдаймыз. Онда оның мағынасы
“Hello World” екенін байқайсыз.
Осыдан кейін біраз командаларды орындап, ақыр соңында Message кнопкасын
басамыз. Exit кнопкасы программа жұмысын аяқтайды, яғни оның басты
терезесін жабады. Төменде қарастырылған программа көрсетілген:

1. Анимация құру

Енді біз сандық деректерді өңдеуді, экрандық обьектілердің
координатасын санауды білсек, енді бізге оларды қозғалтып, анимация құру
қажет.
Анимация құру процесі өте қарапайым. Ол келесі этаптардың қайталануынан
құралады:
1. Экранда берілген нүктеде обьектіні қозғалту;
2. Берілген аз уақытта обьектіні экранда шығару;
3. Обьектіні жою немесе құрту.
Егерде бір уақытта бірнеше экрандық обьектілердің орнын ауыстыру керек
боласа, онда программа ұзын және көптеген қайталанулардан тұратын болуы
қажет. Осы жағдайды болдырмас, біз обьект типі Stage- жаңа экран
обьектілерімен танысамыз. Оның көмегімен біз бірнеше обьектіні бір обьект
болып көрсету үшін пайдаланамыз.
Математикалық функцияда график құру
Обьектіні экранда құруды, координат және масштабын өзгертуді білсеңіз,
онда сіз функция графигін құра аласыз. Берілген y=f(x)функциясын құрамыз,
(xf(x)) координат маңында нүктені қозғалту.
Айталық, біз y=x²-x+1 интервалында х=-5 және х=20 нүкте аралығында
функция графигін алғымыз келеді.
С++ функция тілінде математикалық функцияны анықтайық:
Floatf (float x)
{
Return x*x-x+1;
}
Сурет салу процедурасы өте қарапайым:
♦ dot обьектісін кішігірім аймақ ретінде жариялау;
♦Бастапқы және аяқталған мәндерді анықталған интервалдан кейін
(Мысалы:0,01); келесі қадамды әртүрлі мәндерде х қайталау;
♦ dot обьектісін жаңа координатамен бірге жылжыту;
♦ dot обьектісін экранда көрсету;
Обьекті экран бетіне шығып тұрғандығына куәләну. Өзіңіздің мәніңізді
санаңыз және масштабын өзгерт, яғни төмендегі мәндерді орындау:
♦ х мәні 0-ден 640 интервалында жату керек;
♦ у мәні 0-ден 480 интервалында жату керек;
Масштабты есептеуде немесе х және у осін салу керек болса, онда оны
график салардың алдында істеу қажет. Егерде график құру үшін басқа
программа құру керек болса, онда сізге дайын функция болады.

2.1 Функция графигін тұрғызу
Draw() функциясы
Іске аспайтын армандардың бірі, ол- алдыңғы программалық кодты алу және
одан функция құру. Бастама және аяқталған х мәндері оған аргумент түрінде
енеді , ал координат жүйесін берілген бойынша санаймыз:
Void draw(float x start6 float x end, int dotcolor =7)
{
Circle dot;
Dot.color(dotcolor);
Dot.absize(4);
For(x=xstart; x=xend; x=x+0.01)
}
Dot.place(x,f(x));
Dot.show();
}
}
Бұл жағдайда басты программа келесі түрді қабылдайды:
Void mainprog()
{
...
Draw(-5.,20.);
}
Drow() функциясы мәселені шешуге көп септігін тигізеді. Бірақ өзіңе
сұрақ қойып, басқа, унифицирленген шығын бар ма деп сұрақ қою керек. Егерде
сіз Drow() функциясын тағы да келесілерде қолданатын болсаңыз, онда сіз
келесі төмендегі сұрақтарға қақтығысасыз:
♦ Масштаб. Drow() функциясын басқа атпен құруға болама?
Масштабпен сұрақтар өте қарапайым мәнде шешіледі. Жаңа координата жүйесін
Drow() функциясын аргумент ретінде беруге болады, сонымен қатар функцияның
ішкі жағында Grid обьектісін жариялауға болады.
♦ Функция атымен сұрақты шешу. Ең басында сізге ол іске тиісті емес
болып көрінуі мүмкін. Сонымен функция атын өзгерту оның кодын өзгерту
арқылы. Бірақ бұл дұрыс емес. Міндетті түрде құратын графикте функция атын
пайдаланып, Drow() функциясын аргумент ретінде қолдану қажет.
Компьютер экранындағы қозғалысты имитирлеу үшін, киноны құру үшін
пайдаланылатын жолмен іске асыруға болады, яғни кезектелу бейнелерін аз
уақыт ішінде көрсету. Мұндай қадам әр түрлі анимация құруға мүмкіндік
береді.

2. Экрандағы қозғалысты бейнелеу

Анимация құрудың ең бір қарапайым жолы ол- барлық қозғалысты
математикалық формуламен беру. Бұндай формуланы физика тапсырмаларынан
көруге болады.
Қиын қозғалыстың имитациясы.
Айталық, сізде қозғалушы бейне бар делік, х және у бағынушы координат
х=dist(y) және y=height(t) заңымен анықталады.
Горизонтальмен біркелкі қозғалту.
Бұны анықтау формуласы:x=speedx*t+x0;
Y=y0;
Мұндағы: speedx – горизанталь бағыттағы тұрақты жалдамдық;
y0- тұрақты мән.
Горизонталь және вертикаль біркелкі қозғалыс.
Бұны анықтау формуласы:x=speedx*t+x0;
Y=speedy*t+y0;
Бірқалыпты үдемелі қозғалыс.
Анықтау коды:X=accx*t*t2+speedx*t+x0;
Y=accy*t*t2+speedy+t+y0;
Анимация құру , егерде осы функциялар дұрыс, жазылса, онда анимация
құруға кірісуге болады. Яғни олар мынадай стратегиядан тұрады:
♦ Экрандық обьектіні жариялау;
♦ Уақытты белгілеу үшін біз Clock обьект типін жариялаймыз;
♦ Сәйкес цикл құрамыз, яғни оны екі көрші кадр пайда болғанда аз ғана
уақыт өту үшін (сапалы анимация құру үшін 130сек. Болуы тиіс).
Цикл келесілерді орындауы тиіс:
1. ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Adobe Photoshop бағдарламасының құрылу тарихы
MATLAB МАТЕМАТИКАЛЫҚ ПАКЕТІНІҢ НЕГІЗГІ МҮМКІНДІКТЕРІ
DELPHI программалау жүйесі
Компьютер графикасы
С С графиктік мүмкіндіктері
XXI ғасыр елімізде қоғамдық информатикаландыру
Турбо паскальдағы графикалық процедура
Microsoft Power Point программасы
Компьютерлік графика бойынша
Дельфи ортасында анимация жасау әдістері
Пәндер