Режимдік функциялар



Аннотация
«Бәйге ойыны бағдарламасын жасау» тақырыбындағы берілген курстық жұмыста
Мақсатым ойын-бағдарламасын жазу болды, мұнда тышқанның көмегімен экранда
Алдымен main() функциясы жасалды, бұл функцияда msinit() функциясы
Мазмұны
Кіріспе......................................................................................................................5
1Графика және анимация.......................................................................................6
1.1 Режимдік функциялар......................................................................................6
1.2 Анимация құру................................................................................................13
2 Бағдарламаны жобалау......................................................................................18
2.1 Ойынның құрастырылу әдісі..........................................................................18
2.2 Бағдарламаның алгоритмі.............................................................................18
3 Құжаттау..............................................................................................................19
3.1 Қолданушыға нұсқау.......................................................................................19
3.2 Бағдарламаушыға нұсқау................................................................................19
Қорытынды............................................................................................................20
Қолданылған әдебиеттер тізімі............................................................................21
Қосымша ...............................................................................................................22
Кіріспе
Өткен ғасырдың орта кездерінде есептеуіш техника саласында күрделі
1972 жылы AT&T атаулы Американың корпорациясы жаңа C
Тілге жылдам орындалатын, жеке биттермен операция жасайтын операторлар
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе
C++ тілі де процедуралық тіл, бірақ онда ОБП
объект - құрылымы класс типі арқылы сипатталатын айнымалы;
оқиға - объект жағдайының өзгеруі; қасиеттер - объект
класс - пайдаланушы анықтайтын тип. Тип қасиеттер мен
1 ГРАФИКА ЖӘНЕ АНИМАЦИЯ
Режімдік функциялар
Turbo C жғне C++ тілдерінде графикалық режімге µтіп,
Графикалық режім EGA, VGA, SVGA адаптерлерінде т‰рлі-т‰рлі. Мысалы,
Графикалық режімде ж±мыс істеу функциялары:
1. Драйвер мен графикалық режімді тандау: detectgraph (&gd,
2. Драйверді ж‰ктеу жғне графикалық ж‰йені инициалдау:
initgraph (&gd, &gm, "BGI файлына жол");
М±ндаѓы gd - қажетті драйвер нµмірі, gd=GraphDriver; gm
Егер BGI файлдары ағымдық каталогта бар болса, программада
initgraph (&gd, &gm, " ");
3. Қате жаѓдайды тексеру функциясы: graphresult ();
Егер программа д±рыс қосылса, онда қате коды =
Сонымен, графиктік режімді іске қосу ‰шін программа басын
#include
#include #include
#include main ()
// м±ны кµп жаѓдайда // енгізбеуге де болады
{
int gd, gm, error;
defectgraph (&gd, &gm); initgraph (&gd, &gm, "");
era>r=graphresult();
//(error!=grOK)
{ puts ("графика катесі"); exit (1); }
Ескерту. Компьютерде режімніњ д±рыс істейтініне сенімді болсањыз, графиктік
Т‰сті орнату
Graphics файлында анықталѓан т‰стік палитралар (барлығы 16,
12 т‰с
Т‰с аты Код Казақша аты
BLACK 0 қара
BLUE 1 кµк
GREEN 2 жасыл-кµк
GRAY 3 с±р
RED 4 қызыл
MAGENTA 5 қызыл курең
BROWN 6 қоњыр
LIGHT GRAY 7 ашық қоныр
LIGHT GREEN 10 ашық кµк
LIGHT RED 12 ашык қызыл
YELLOW 14 сары
WHITE 15 ақ
Фон т‰сін орнату функциясы: setbkcolor (т‰с);
Tүc ‰шін оныњ латынша атын не кодын енгізуге
Сызылатын кескіндер мен жазылатын мғтін т‰сін орнату:
setcolor (т‰с);
Геометриялық объектініњ µзгешілігі мен қалыњдыѓын орнату:
setlinestyle (т‰р, ‰лгі, қалындық);
М±ндаѓы т‰р кодтары:
0 SOLID_LINE (т±тас)
1 DOTTED_LINE (н‰ктелерден туратын)
2 CENTER_LINE (н‰ктелер мен сызықшалардан)
3 PASHED_LINE (пунктирлермен)
4 USERBIT_LINE (пайдаланушы анықтайтын);
Қалыңдық:
1 NORM_WIDTH (бір пиксельдік сызық)
3 THICK_WIDTH (‰ш пиксельдік сызық)
‡лгі параметрі т‰р коды 4-ке етіп ашылѓанда ғана
Т±йық облысты бояу ‰шін арналѓан функциялар:
a1) setfillstyle (бояу типі, т‰с);
М±ндаѓы бояу типініњ негізгі кодтары мен атаулары:
0 EMPTY_ҒILL фон т‰сімен бояу
1 SOLID_ҒILL кµрсетілген т‰спен т±тас толтыру
3 LTSLASH_ҒILL кµлбеу сызықтармен штрихтау
a2) floodfill(x, y, т‰с);
(x, y) — т±йық облыс ішінде жататын н‰кте,
Экранды тазалау (орнатылѓан параметрлерді алып тастап, алѓашқы графикалық
cleardevice ();
Берілген графикалық режімде н‰ктелер координаттарыныњ ең ‰лкен мғндерін
getmaxx (); - кµлденеңі бойынша, getmaxy (); -
Графикалық экранды тазалау: clearviewport ():
Ағымдық координаттарды анықтау: getx(); gety();
Графикалық режімде жадты тазалап, алѓашқы мғтіндік режімге µту:
closegraph ();
Графикалық экран ішінде терезе ашу:
setviewport (xl, yl, x2, y2, clip);
-(xl, yl), (x2, y2) - терезеніњ сғйкес сол
clip - кесіп тастау коды. Егер clip=l, онда
Геометриялық объектілерді сызу операторлары
1. (xl, yl), (x2, y2) н‰ктелерін қосатын т‰зу
line (xl, yl, x2, y2)
ал, lineto (x, y) - функциясы ағымдық н‰ктеден
Сғйкес сол жақ жоѓарѓы жғне оњ жақ тµменгі
rectangle (xl, yl, x2, y2);
Орталық н‰ктесі (x, y) шењбер:
circle (x, y, радиус);
. Шењбер доғасын сызу:
arc (x, y, баст_бүрыш, соњғ._б±рыш, радиус);
- б±рыштар градустық µлшеммен беріледі жғне сағат тіліне
М±ндаѓы ескеретін жайт: кескіндерді салу пиксельдік н‰ктелер бойынша
Жартылай µстері rx, rу болатын боялѓан эллипсті орнату,
(x, y) — орталық н‰ктесі:
ғillellipse (x, y, rx, ry);
Эллипс доғасын сызу:
ellipse (x, y, баст_б±рыш, соњғ._б±рыш, rx, ry );
Боялѓан тік тµртб±рышты салуѓа арналѓан функция:
bar (xl, yl, x2, y2);
- (xl, yl,), (x2, y2) - сғйкес сол
Контур іші боялѓан параллелепипед сызу функциясы:
bar3d (xl, yl, x2, y2, тереңдігі, тµбесі);
м±нда параллелепипедтің алдыњѓы жағы боялып кµрсетіледі. Тереңдік ‰шін
Орталық н‰ктесі (x, y), боялѓан дµңгелек секторы:
pieslice(x, y, баст_б±рыш, соњғ_б±рыш, радиус);
контуры кµрсетілген жғне боялѓан сектор сызылады. Боялу т‰сі
Боялѓан эллипстік сектор:
sector (x, y, баст_б±рыш, соњғ_б±рыш, rx, гу);
Салынған ‰шб±рыш, тік тµртб±рыш, шеңбер сияқты фигураларды ағымдық
setwritemode (режім);
режім ‰шін алынатын кодтар:
0- кµшіру;
1- экранда сызулы кескінді "µшіру";
2- стандартты режім.
Мундағы 1 (бір) - т‰рлі сызықтармен қ±растыру кезінде
Қозғалуды ±йымдастыратын басқа функциялар да бар:
getimage(), imagesize() жғне putimage(). getimage() функциясы арқылы бейне
Н‰кте орнату:
putpixel (x, y, т‰с);
М±ндаѓы x, y — терезеніњ координаттар ж‰йесінде пиксель
Терезеде мғтін орнату:
outtextxy (x, y, mn);
М±ндаѓы x, y - мғтін шыѓарылатын бастапқы н‰кте,
outtext() функциясы да бар.
Тµменгі функцияны пайдаланып, мғтінді т‰рлі т‰рде шыѓаруға болады.
settextstyle (шрифт, бағыт, µлшем);
шрифт (қаріп) параметрлерініњ негізгілері:
0 DEҒAULT _ҒONT стандартты
3 SANS_SERIҒ_ҒONT тікесінен жазу
бағыт параметрлері:
0 HORlZ_DIR солдан оњға қарай
1 VERT DIR тµменнен жоғарыға
µлшем - коды 1 .. 10 аралыѓында алынатын
Фигуралар салу программалары
Экран бетіне ақ т‰сті шеңбер, тік тµртб±рыш жғне
#include
#include
#include
#include
main ()
{
int gd, gm, error; clrscr ();
detectgraph (&gd, &gm);
initgraph (&gd, &gm, "c:\\Borland\\bgi");
error=graphresult (); iғ (error != grOK)
{ puts (grapherrormsg(error)); exit (-1); }
/* кµгілдір экранда ақ т‰с орнату */
setbkcolor (1); setcolor (15);
/* объектініњ ерекшеліктерін орнату */
setlinestyle (0, 0, 0);
/* экранды тазалау */
cleardevice ();
/* шыѓару терезесін орнату, оны тазалау */
setviewport (10, 10, getmaxX()-50, getmaxY() -50,
clearviewport ();
/* қажетті т‰стерді дайындап, фигуралар салу*/
setbkcolor (0); setcolor (15);
circle (70, 70, 50);
rectangle(180, 30, 250, 150);
line (280, 70, 400, 150);
settextstyle (0, 0, 0);
outtextxy (40, 140, "Шеңбер");
outtextxy (160, 160, "Тіктµртб±рыш");
outtextxy (380, 160, "Кесінді");
getch (); closegraph (); return 0;
}
Ішіне 75%, 25% жазулары жазылѓан боялѓан дµњгелек сектор
Программа ‰зіндісі:
main ()
{
int gd, gm; clrscr ();
initgraph (&gd, &gm, " "); setbkcolor (1);
setcolor (4); setғilestyle (1, 3);
circle (70, 70, 50);
x= getmaxx()/2; y= getmaxy()/2;
setfillstyle (1, 2);
pieslice (100, 100, 0, 80, 90);
sector (250, 250, 0, 50, 200, 120);
settextstyle (1, 0, 2);
moveto (80, 60); outtext ( "75%");
/* (80,60) н‰ктеден бастап */
moveto (120, 110); outtext ("25%");
getch();
closegraph (); return (0);
}
Экранда кездейсоқ орналасқан 70-тей ж±лдыз жғне олардыњ шетінде
Блоктарды пайдаланып қ±рылѓан программа (2.9 — тақырыпта қ±рылѓан
Оныњ ескерту бµлімінде жазылған екінші н±сқасы пайдаланылды):
#include
#include
#include
#include
void initialize();
void pixel();
int gd, gm, maxX, maxY, maxColors;
void main ()
{
initialize();
pixel();
getch(); closegraph();
}
void initialize()
{ gd=DETECT;
initgraph(&gd, &gm, " ");
}
void pixel()
{
int seed=100; int x, y, k, maxcolors, color;
clrscr ();
cleardevice(); srand(seed); /* srand — unsigned rand */
setbkcolor(l); setcolor(14); ғor(k=0; k


Ұқсас жұмыстар

Графика және анимация
Қылмыс жасаудағы күдіктілерді күзету, ұстау және айдауылдау жөніндегі полиция қызметінің жұмысын ұйымдастырудың құқықтық негізі
Автоматты қондырғылар мен техникалық құрылғыларды енгізу арқылы құбырлы дайындаманы орналастыру және қалыптау операцияларын жетілдіру
Технологиялық процессті автоматтандыру сұлбасы
Электронды оқулықты пайдалану. Электронды оқулық құрудың жолдары
Бұрғылы сорғы
«Мамандандырылған мемлекеттік күзет қызметінің қызметі»
Бастырмалатқыштың қысуындағы газдың қысымы
Телекоммуникация саласында ақпараттық технологияларды пайдалану жағдайы
Жоғарғы Сот алқалары