OpenGL ортасының анимацияланған кескіндеріндегі синтезделген камераның моделі
Презентация қосу
12/16/2018 1
OpenGL ортасының
анимацияланған
кескіндеріндегі
синтезделген
камераның моделі
12/16/2018 2
КІРІСПЕ
Ғылыми-техникалық прогресс компьютерлік
өнеркәсіптің дамуына үлкен түрткі болды.
Компьютерлердің қарқынды дамуы ақпараттық
технологияның жаңа бағыты компьютерлік
графиканы қолдануға мүмкіндік берді.
Компьютерлік графика – бұл компьютерлер
көмегімен суреттерді өңдеудің барлық аспектілерін
қамтитын информатика облысы. Қазіргі кезде
компьютерлік графика программалық қамтамасыз
етуде және жалпы компьютерлік жүйелерде
стандарт болып табылады.
12/16/2018 3
OpenGL графикалық жүйесі – бұл графикалық
құрылғыларға арналған программалық интерфейс.
Ол қозғалатын объектілерді екі өлшемді және үш
өлшемді кеңістікте бейнелейтін интерактивті
қосымшаны өңдеуге мүмкіндік береді.
12/16/2018 4
Берілген жұмыс компьютерлік графикадағы
шыншыл суреттерді жасауға арналған.
Графикалық редакторда шыншыл суреттерді
жасау үшін сол сурет пішінін құру керек және
текстура объектісіне дұрыс жарық түсіруді
қамтамасыз ету керек. Динамикалық суреттерді
жасау жайындағы объектінің интерактивті
режимін және де артқы жағынан объектіні
қарағанда қозғалатын камералар сахнасының
пішінін жасау керек.
12/16/2018 5
OpenGL-дің қысқаша
артықшылықтарын атап көрсетуге болады:
Түрлік және модельдік түрлендірулер;
Геометриялық және растрлық примитивтер;
Безье қисықтарын қолдану;
Түспен жұмыс жасау;
Камерамен жұмыс;
Текстура салу;
Жарықтандыру;
Атмосфералық эффектілер;
12/16/2018 6
Көп адамдар 3D әлемін камерадан қарайтын
кеңістік ретінде танып біледі. Бірақ OpenGLда
шынайы камера жоқ болып саналады. Қозғалыс
иллюзиясы үшін (0,0,0) нүктесіне қатысты
кинодағыдай камера емес, объекттер жылжиды.
Бұндай процесс қиын көрінуі мүмкін, бірақ
бұл қиын емес. Қосымшадан тәуелді бұл есепті
шешудің көптеген жолдары бар. Шынайы үлкен
әлемдер үшін оптимизациялар одан да көп.
12/16/2018 7
ОБЪЕКТ ЖӘНЕ БАҚЫЛАУШЫ
Компьютермен қалыптастырылған бейне өзіңің
табиғаты жағынан жасанды синтезделген болып
келеді, сондықтан ол көбінесе физикалық
жағынан жоқ болып табылады.
Бейнелерді құру процесінде – физикалық
немесе формалдық (математикалық) – екі
маңызды тұлға қатысады: объект және
бақылаушы.
12/16/2018 8
. Объект кеңістікте бейненің жасалу процесінен
тәуелсіз бар болады. Компьютерлік графикада
біз нақты физикалық объектімен емес,
қиялдағы, синтезделген компьютерлік
бағдарламамен жұмыс істейміз. Мұндай
қиялдағы объект кеңістікте әр түрлі
геометриялық примитивтер - нүкте, кесінділер
және көпбұрыштардың орналасу
спецификациясы арқылы қалыптасады.
Көптеген графикалық жүйелерде объекттерді
суреттеуге немесе аппроксимациялауға
арналған кеңістікте өте көп нүктелердің
суреттелуі бар, мысалы, шыңдар (vertices).
12/16/2018 9
Бір сахнаны үш әртүрлі бақылаушының қалай көретіндігі: а – бақылаушы А; б – бақылаушы В; в – бақылаушы С;
12/16/2018 10
Мына суретте фотокамера пленкасында ғимарат
бейнесінің қалыптасуы көрсетілген. Бірақ бақылаушы және
бақыланушы объект сол бір үш өлшемді әлемде
болғанымен, пленка жазықтығандағы пайда болған бейне
екі өлшемді болып табылады. Бейненің құрылу процесінің
мәні: бақылаушының және объекттің орнын (сипаттамасын)
біле отырып, пайда болған екі өлшемді бейнені сипаттау.
Фотокамерада бейненің құрылуы
12/16/2018 11
Объекттің кез-келген бір нүктесінің бейнесін құру
үшін біз осы нүктеден объектив центріне проециалайтын
сәуле жүргіземіз. Назар аударыңыз, барлық
проециаланатын сәулелер проециалау центріне
жинақталады. Біздің синтезделген камерамызда объектив
алдына жылжытып орналастырылған светоприемник
жазықтығы - суреттік жазықтық немесе проекция
жазықтығы (projection plane) деп аталады.
Синтезделген камера
12/16/2018 12
Кесу рамкасы: а - рамканың алдыңғы орны; б – рамка
жылжыған;
12/16/2018 13
Қолданбалы программалар интерфейсі
Қолданбалы программа және графикалық
жүйе арасындағы интерфейс бұл - жиынтықта
графикалық кітапхананы құрайтын
функциялардың жиыны. Бұл функциялардың
қызметі біз атайтындай қолданбалы программалар
интерфейсі (АРІ- application programmer ' s
interface ).
12/16/2018 14
Синтезделген камераның концепция
пішініне ерсек, онда АРІ негізінде
төмендегілерді сипаттайтын функциялар
болу керек:
• Объектілер;
• Бақылаушы;
• Жарық көздері;
• Объекті материалдарының қасиеттері;
12/16/2018 15
Камерада ол арқылы құрылатын бейнені
суреттейтін төрт түрлі параметрлері бар:
• 1. Камераның орналасуы проекция центрінің орналасуымен
беріледі.
• 2. Бағдарлау. Проекция центрін кеңістіктің айқын нүктесіне
орналастырып, камераның бастапқы жергілікті
координаталар жүйесімен сәйкестендіріп, осындай жолмен
объективтің бағдарын өзгерте отырып айналдыруға болады.
• 3. Камера объективінің фокустік ара-қашықтығы проекция
жазықтығында бейнені нақты анықтайды.
• 4. Светоприемник жазықтығы. Камераның артқы қабырғасы
биіктігінде және енінде ақырғы мөлшерлерге ие. Кейбір АРІ
светоприемник жазықтығының бағдарын объектив
бағдарынан тәуелсіз дем беруге рұқсат береді.
12/16/2018 16
КАМЕРАНЫ ОРНАЛАСТЫРУ
Фрейм (англ. frame — кадр, рамка) —жалпы жағдайда қандайда бір
ақпаратты сақтайтын структура.
OpenGL-дың үшөлшемді объектілерді бейнелеуді
қолдайтын қандай функциялар бар екенін қарасырайық.
Біз сонымен қатар осындай тәсілдердің басқа графикалық
жүйелерден қаншалықты айырмашылығы бар екенін
көреміз. Бұл бөлімде камера орналасу тәсілдерін пішіндеу
туралы айтамыз. OpenGL да түр матрицалары және
проециалаулар көбейтіледі және барлық геометриялық
объекттердің шыңдарына қолданылатын түрлендіру бірлік
матрицасы пайда болады.
12/16/2018 17
Камера фреймін жүлдемелеу
Үндеусіз OpenGL камераны әлемдік фреймның
координаталар басына орналастырады, және де
проециалаушы осі әлемдік фреймнің z осіне қарама-қарсы
бағытталады. Көптеген қосымшаларда пішіндеу барысында
объекттер координаттар басының төңірегінде орналасады,
демек, камера орналасуының бастапқы моментінде
сахнаның барлық объектілерін көрмейді. Осылайша, барлық
объектілер камераның көру облысына түсу үшін оны қалайда
жылжыту керек, немесе объектілерді камераның алдына кеп
тұратындай қылып жылжыту. Мұның программалық мәні -
эквиваленттік операциялар.
12/16/2018 18
Пішіндеу барысында құрылған сахна бірлік түр
матрицасына ие деп есептеуге болады, және оның барлық
шындарын glVertex() функциясы арқылы беруге болады.
Түр матрицасының кейінгі өзгертулері әлемдік фреймді
камераға қатысты жылжытады, осылайша ақыр аяғында
камерада көрінуіне ықпал етеді, себебі шыңдар
өзгертілген әлемдік фреймге қатысты берілген.
Камераның алғащқы орны
12/16/2018 19
Камера фреймі мен әлемдік фреймнің өзара жылжуы: а
– бастапқы конфигурация; б – түр матрицасының
өзгеруінен кейінгі конфигурация;
12/16/2018 20
Алдымен түр матрицасында бұрылыс пен
жылжулар жанама тізбегі арқылы камера орналасуын
береміз.
Центрі координаталар басында орналасатын
объектті қарастырайық. Камера бастапқы орнында -
координаталар басында орналасқан, ал оның
оптикалық осі z теріс жарты осі бойымен
бағытталған. Бізге оң х жарты осі жағынан көрінетін
объекттің жазықтығын көру керек болсын. Демек,
камераны координаталар басынан жылжыту керек.
Егер камераның ориентациясын өзгертпейтін болсақ,
онда оны оң z жарты осімен жылжыту керек. Сәйкес
түрлендірулер glTranslatef (0.0,0.0,- d) функциясы
арқылы жүзеге асады. Мұндағы d - оң сан.
12/16/2018 21
Компьютерлік графикада басқа әдістеме кең
тараған - объект бекітілген фреймде орнатылған
деп есептеледі, ал бақылаушы лайық ракурсты
іздеп, оның айналасында жүгіреді. Визуализация
концептулды былай орындалады: біз объектті
аламыз, бізге қалай қажет солай бағдарлаймыз да
керекті орынға жылжытып қоямыз.
12/16/2018 22
Енді бұл объектке х оң жарты осі жағынан қалай
қарау керектігін қарастырайық. Ол үшін камераны
объекттен алшақтату ғана жеткіліксіз, оны суретте
көрсетілгендей у осі бойынша бұру қажет.Жылжытуды
у осі бойынша 90 градусқа айналдырғаннан кейін
барып орындаған жөн. Программа кодында мұндай
функциялардың шақырылуы кері ретте жүргізілуі
қажет. Сондықтан программаның сәйкес бөлігі
мынадай болып көрінеді:
• glMatrixMode(GL_MODELVIEW);
• glLoadIdentity();
• glTranslatef(0.0,0.0,-d);
• glRotatef(-90.0,0.0,1.0,0.0);
12/16/2018 23
Камераның орналастырылуы
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0,0.0,-d);
glRotatef(-90.0,0.0,1.0,0.0);
12/16/2018 24
ПРОЕЦИАЛАУ
OpenGLда проециалаудың бірнеше түрі бар,
солардың негізгілері мыналар:
•Перспективтік – шыншылға жақын
•Ортогональдық – экранға тікелей қатысты, оның
шындық өлшемін есептемегенде. Бұл жай
чертеждік проекция болуы мүмкін.
12/16/2018 25
Перспективтік проекциялар
Суретте объектив пен камера жазықтығының қиылысуының екі
түрі көрсетілген. а) суретінде бейне жазықтығы объективтің
оптикалық осіне ортогональды. Мұндай жағдай көптеген реалды
оптикалық аспаптар үшін орындалады, мысалы, адам көзі үшін. б)
суретінде мейлінше жалпы жағдай келтірілген. Мұнда бейне
жазықтығының бағдары объективтің оптикалық осімен сәйкес
келмейді.
12/16/2018 26
Ортогональдық проекция
Ортогональдық проекция – бұл параллельдік
проекцияның дара түрі. Бұл жағдайда проециаланатын
сәулелер суреттің жазықтағына ортогональді.
Ортогональдік проекция объективінің өте үлкен фокустық
аралығы бар камераларда пайда болатынын үлкен
дәлдікпен айтуға болады. Бұл жағдайда камераның
суреттік жазықтығы оның объективінің оптикалық осіне
ортогональді.
12/16/2018 27
Суретте z=0 суреттік жазықтығына ортогональдік
проекция көрсетілген. Нүктенің бұл жазықтыққа
проециалаған кезде оның х және у компоненттерінің
мәндері сақталады, ал проециалау теңдеулері енді
мынадай түрге келеді:
xp=x, yp=y, zp=0;
Ортогональдік проекциалар
12/16/2018 28
Шешімін біртекті координаталардың
матрицасы түрінде жазайық:
12/16/2018 29
Жай жағдайларға пайда болған
нәтижелерді ортақ түрдегі перспективтік
және параллельдік проециаларға дейін
жылжу мен бұрылу түрлендірулерінің
тізбкетерін қосу арқылы кеңейтуге болады.
12/16/2018 30
ПРАКТИКАЛЫҚ БӨЛІМ
3D әлемінің басты проблемасы – бұл екі өлшемді экран
жазықтығына үшөлшемді объекттерді сәйкес конвертация
жасау. Ол үшін келесі басты операциялар орындалады.
1. Transformations – олар multiplication түрінде келтірілген:
modeling, viewing, projection operations, және де rotation,
translation, scaling, reflecting, orthographic projection,
2. Клиппинг – яғни, монитор шекарасына түспейтін
объекттерді немесе олардың бөліктерін қиып алу.
3. Түрлендірілген 2D координаталар пайда болғаннан кейін
оларды экрандық координаталарға сәйкес келтіру керек, яғни
viewport transformation жасау керек.
12/16/2018 31
Transformation процесі камерадан сурет алу процесіне
пара-пар. Камера келесі операцияларды жүзеге асырады:
Камера орнатамыз – viewing transformation.
Сахна жасаймыз – modeling transformation.
Камера линзасын дұрыстаймыз - projection transformation.
Сурет өлшемін таңдаймыз - viewport transformation
Алдымен 4х4 М матрицасын инициализация
жасаймыз. Оны кейін сахнаның әр шыңына көбейтеміз. Әр
шыңның 4 координатасы бар (x, y, z, w) , мұнда w=1 и
z=0 . Әр фреймнен кейін glLoadIdentity() шақырылады.
12/16/2018 32
Берілген бөлімде OpenGL проект жасаудың
программалық коды кезеңдеп басылған. Басынан бастап
Visual C++ жобасын жасаған жөн, ол үшін келесі
әрекетті жасайды:
• MSVisualC++6.0 іске қосу.
• File-> New-> Win32 Console Application мәзірін басу
• Жоба каталогы мен атын таңдау, ОК басу
• An Empty Project таңдап, Finish басу.
MSVisualC++ жаңа Win32 қосымшасын жасаған соң,
жобаны жинақтау үшін OpenGL кітапханасын қосқан
жөн. Project/Settings менюында, LINK белгілемесін
тандаңыз. “Object/Library Modules” жолағында
“OpenGL32.lib Glu32.lib GLaux.lib” қосыңыз. Кейін ОК
басыңыз. OpenGL программасын жасауға бәрі де дайын.
12/16/2018 33
Шолу камерасы операцияларын
инициализациялау
Шолу камерасының класс анықтамасы
екі бөлікке бөлінген, олардың әрбіреуі жеке
файлда сақталады: тақырып файлында
класс қолдайтын операциялардың
сипатталуы болады; ал бағдарлама мәтіні
болатын файлда бұл операциялардың
жүзеге асырылуы сақталады.
12/16/2018 34
Алдымен, файлындағы операцияларды сипаттаймыз.
Тақырыптық файл құрамыз, ол үшін келесі әрекеттерді
орындау керек:
• Project->Add To Project->New . . . мәзірін шерту
• Тізімнен С/С++ Header File таңдау
• Файл атауын таңдап, ОК басыңыз.
• Бұл операциялардың барлығын орындап, жобаға
camera.h файлын қосамыз. Қосу кілттерін қосамыз, олар
тақырыптық файлдарының қайта қосылуын болдырмау
үшін тағайындалған.
• #ifndef_CAMERA_H
• #define_CAMERA_H
12/16/2018 35
Кейін OpenGL-дың стандартты кітапханаларын
қосамыз.
• #include
• #include
• #include
• #include
Бұл кітапханаларды қосу керек, себебі GL*
типтес кітапхана бұл жерде тиімді.
12/16/2018 36
Кодтың келесі секциясы typedef көмігімен
мәліметтер типінің құрамды жаңа атауын құрады,
бірақ бұл мәліметтердің жаңа типінің пайда
болуына әкелмейді. Struct кілтті сөзі құрылымның
сипаттамасын береді. Құрылым – бұл басқа
типтерді қолдана отырып, құрылған мәліметтердің
құрамды типтері. SF3dVector идентификаторы –
құрылым тегі (белгіленуі, атауы-этикетка).
Құрылым тегі берілген типтің айнымалы
құрылымын жариалау кезінде қолданылады.
typedef struct SF3dVector
{
12/16/2018 37
Кодтың берілген секциясында
GLfloat типінің x, y, z айнымалылары
сипатталады, олар үшөлшемді
кеңістікте вектор координаттары
болып келеді.
GLfloat x, y, z;
};
12/16/2018 38
Камера класын жүзеге асыру class кілтті
сөзінен басталады, оның артынан класс атауы,
оны CCamera деп анықтайық. Классты анықтау,
оны хабарлау, және одан кейіңгі класс денесі
жақшаға алынып, соңына нүктелі үтір қойылады.
Класс денесіндегі public және private кілтті
сөздері класс мүшелеріне рұқсатты басқару үшін
қолданылады. рublic (жаңалық) сияқты
анықталған мүшелер программаның кез-келген
жерінен алынады.
12/16/2018 39
class CCamera
{
private:
SF3dVector Position;
SF3dVector ViewDir; // камераны беру ұшін қолданылмайды, "moveforwards« үшін //қолданылады.
Сондықтан оны әрқашан шақырудың қажеті жоқ.Оны тек ViewDirChanged //ақиқат шақырылған
кезде ғана қолдану
bool ViewDirChanged;
GLfloat RotatedX, RotatedY, RotatedZ;
void GetViewDir ( void );
public:
//мәндері (орны (0 | 0 | 0) мәні: (0 | 0 | -1))
//кейбір glRotates және glTranslate командалары орындалады
CCamera();
void Render ( void );// бұны шақырғанның алдында glLoadIdientyti() шықыру керек
void Move ( SF3dVector Direction );
void RotateX ( GLfloat Angle );
void RotateY ( GLfloat Angle );
void RotateZ ( GLfloat Angle );
void RotateXYZ ( SF3dVector Angles );
void MoveForwards ( GLfloat Distance );
void StrafeRight ( GLfloat Distance );
};
12/16/2018 40
Шолу камерасы операцияларын жүзеге
асыру
Класс хабарламасын тақырыптық файлға, классты қолдана
алатын кез-келген клиентке оңай тиетін тақырыптық файлға
орналастырамыз. Бұл кластың ашық интерфейсін
құрастырады. Функция – элементтердің анықтамаларын
ағымдағы файлға орналастырамыз, соның нәтижесінде класс
жасалуын аламыз. Енді camera.cpp файлындағы класс
операцияларының жасалуын сипаттаймыз. Класс
анықтамасымен берілген тақырыптық файлды қосамыз.
• #include “camera.h”
• #include
• #include
• #include
12/16/2018 41
Келесі код мәліметтердің құрылған құрамды типі
сияқты элемент-функцияға ие (атаулары бірдей). Ол
конструктор деп аталады. Конструктор – берілген
мәліметтер типі объектісінің берілім-элементтерінің
құратын арнайы функция-элемент. Конструктор автоматты
түрде шақырылады, мәндері берілген мәліметтер типінің
объектісін анықтағанда беріледі. Конструкторды қайта
жасауға болады. Бірінші жазба конструкторды берілген
мән бойынша жасайды, ал екіншісі – үшаргументті
конструктор болып келеді.
• CCamera::CCamera()
12/16/2018 42
Біздің орналасудың векторын ноьдік
координаталарға инициализация жасаймыз:
{
Position = F3dVector ( 0.0, 0.0,0.0);
ViewDir = F3dVector( 0.0,0.0,-1.0);
ViewDirChanged = false;
RotatedX = RotatedY = RotatedZ = 0.0;
}
12/16/2018 43
Камераның орналасуын, қарау бұрышын орнатамыз
SF3dVector Step1, Step2;
//у бойынша айналдырамыз
Step1.x = cos( (RotatedY + 90.0) * PIdiv180);
Step1.z = -sin( (RotatedY + 90.0) * PIdiv180);
// у бойынша айналдырамыз
double cosX = cos (RotatedX * PIdiv180);
Step2.x = Step1.x * cosX;
Step2.z = Step1.z * cosX;
Step2.y = sin(RotatedX * PIdiv180);
//z бойынша айналдыру әлі де болған жоқ сондықтан:
ViewDir = Step2;
12/16/2018 44
Камераның жылжуы:
void CCamera::Move (SF3dVector Direction)
{
AddF3dVectorToVector(&Position, &Direction );
}
void CCamera::MoveForwards( GLfloat Distance )
{
if (ViewDirChanged) GetViewDir();
SF3dVector MoveVector;
MoveVector.x = ViewDir.x * -Distance;
MoveVector.y = ViewDir.y * -Distance;
MoveVector.z = ViewDir.z * -Distance;
AddF3dVectorToVector(&Position, &MoveVector );
}
void CCamera::StrafeRight ( GLfloat Distance )
{
if (ViewDirChanged) GetViewDir();
SF3dVector MoveVector;
MoveVector.z = -ViewDir.x * -Distance;
MoveVector.y = 0.0;
MoveVector.x = ViewDir.z * -Distance;
AddF3dVectorToVector(&Position, &MoveVector );
}
12/16/2018 45
Объекттің реалистігін жоғарлату үшін жарық көздерін
қосу, материал, текстура секілді қосымша әдістер
қолданылған.
static GLfloat MatSpec[] = {1.0,1.0,1.0,1.0};
Материал сапасы
static GLfloat MatShininess[] = {45.0};
Материал шағылыстырылуы
static GLfloat LightPos[] = {-2.0,1.5,1.0,0.0};
Жарық көзінің орны
glLightfv(GL_LIGHT0,GL_POSITION,LightPos);
Жарық позициясы
12/16/2018 46
• glMaterialfv(GL_FRONT_AND_BACK,
GL_SPECULAR, MatSpec);
• glMaterialfv(GL_FRONT_AND_BACK,
GL_SHININESS, MatShininess);
• glEnable(GL_LIGHTING);
• glEnable(GL_LIGHT0);
• glLightModelfv(GL_LIGHT_MODEL_AMBIENT,
ModelAmb); жарық көзі мен материалдың
қасиеттері
12/16/2018 47
Интерактивтілік эдементтері қосылған. Біз камераны
клавиатура және тышқан көмегі арқылы жылжыта
аламыз.
• w : алға
• s : артқа
• a : солға бұрылу
• d : оңға бұрылу
• x : жоғары
• y : төмен
• v : оңға жылжу
• c : солға жылжу
• r : жоғары жылжу
• f : төмен жылжу
12/16/2018 48
• void KeyDown(unsigned char key, int x, int y)
•{
• switch(key)
• {
• case 27:
• exit(0);
• break;
• case 'a':
• Camera.RotateY(5.0);
• Display();
• break;
• case 'd':
• Camera.RotateY(-5.0);
• Display();
• break;
• case 'w':
• Camera.MoveForwards( -0.3 ) ;
• Display();
• break;
• case 's':
• Camera.MoveForwards( 0.3 ) ;
• Display();
• break;
• case 'x':
• Camera.RotateX(5.0);
• Display();
• break;
•
12/16/2018 49
• case 'y':
• Camera.RotateX(-5.0);
• Display();
• break;
• case 'c':
• Camera.StrafeRight(-0.3);
• Display();
• break;
• case 'v':
• Camera.StrafeRight(0.3);
• Display();
• break;
• case 'f':
• Camera.Move(F3dVector(0.0,-0.3,0.0));
• Display();
• break;
• case 'r':
• Camera.Move(F3dVector(0.0,0.3,0.0));
• Display();
• break;
•
• }
• }
12/16/2018 50
void mouse(int btn, int state, int x, int y)
{
if(btn==GLUT_LEFT_BUTTON &&
state==GLUT_DOWN) Camera.RotateY(5.0);
if(btn==GLUT_MIDDLE_BUTTON &&
state==GLUT_DOWN) Camera.MoveForwards(
-0.3 ) ;
if(btn==GLUT_RIGHT_BUTTON &&
state==GLUT_DOWN) Camera.RotateY(-5.0);
display();
}
12/16/2018 51
Сахнаның алдынан қарағандағы көрініс
12/16/2018 52
Сахна ішінің көрінісі
12/16/2018 53
Жанынан қарағандағы көрініс
12/16/2018 54
Үстінен қарағандағы көрініс
12/16/2018 55
Назар салып тыңдағандарыңызға
РАХМЕТ!!!
12/16/2018 56
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz