Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Технології програмування КС. Лекція 2 (частина 2)

Структура простої OpenGL-програми (на базі консольного-проекту бібліотека glut)Заголовкові файли, оголошення функцій та змінних#include #include #include #include // файли glut32.lib та glut32.dll – в теці проектуvoid display(void);void resize(int,int);2. Функцій main() програмиvoid main(){ glutInitWindowPosition(50, 10);
Технології програмування КС лекція 2 (частина 2)Проф. Цимбал О.М., кафедра ТАВР, ХНУРЕ, Харків, Україна Структура простої OpenGL-програми (на базі консольного-проекту бібліотека glut)Заголовкові файли, оголошення Синтаксис команд та основні типи OpenGLФункції та процедури OpenGL, зазвичай, називають Команди відображення графічних примітивів OpenGLвершини графічних об’єктів OpenGL визначаються командою glVertex*(): void glVertex Команди відображення графічних примітивів OpenGLЗа допомогою наборів вершин задаються примітиви або групи Команди відображення графічних примітивів OpenGLІ Команди відображення графічних примітивів OpenGLПриклад з незалежними лініями: glLineWidth(5.0);glBegin(GL_LINES);	glColor3f(0.0,0.0,1.0);	glVertex3f(5.0f,0.0f,0.0f); glVertex3f(0.0f,5.0f,0.0f);	glColor3f(1.0,1.0,0.0);	glVertex3f(0.0f,0.0f,0.0f); glVertex3f(5.0f,5.0f,0.0f);glEnd();Приклад з Команди відображення графічних примітивів OpenGLПриклад із замкненою лінією: glLineWidth(15.0);glBegin(GL_LINE_LOOP);glColor3f(0.0,1.0,0.0);	for(int i=0;i Команди відображення графічних примітивів OpenGLПриклад із пов’язаними трикутниками: glBegin(GL_TRIANGLE_STRIP);	glColor3f(1.0,0.5,0.0);	glVertex2f(0.0,0.0); glVertex2f(-2.5,-5.0); 	glColor3f(1.0,0.0,1.0);	glVertex2f(-5.0,0.0); glVertex2f(-7.5,-5.0);	glColor3f(0.0,1.0,0.0);	glVertex2f(-10.0,0.0);glEnd();Приклад Команди відображення графічних примітивів OpenGLПриклад із незалежними чотирикутниками: glBegin(GL_QUADS);	glColor3f(1.0,0.0,0.0);	glVertex2i(0,0); glVertex2i(0,4); glVertex2i(4,4); glVertex2i(4,0); Команди відображення графічних примітивів OpenGLПриклад із полігоном (правильний шостикутник): glBegin(GL_POLYGON);	glColor3f(0.0,0.5,1.0);	for(int i=0;i Команди відображення графічних примітивів OpenGL		// приклад із полярною системою координат	glColor3f(1.0,1.0,0.0);		// жовтий колір	glLineWidth(5.0);
Слайды презентации

Слайд 2 Структура простої OpenGL-програми (на базі консольного-проекту бібліотека

Структура простої OpenGL-програми (на базі консольного-проекту бібліотека glut)Заголовкові файли, оголошення

glut)

Заголовкові файли, оголошення функцій
та змінних

#include
#include
#include
#include



// файли glut32.lib та glut32.dll – в теці проекту

void display(void);
void resize(int,int);

2. Функцій main() програми
void main()
{ glutInitWindowPosition(50, 10);
glutInitWindowSize(400, 400);
glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
glutCreateWindow( "GLUT Template" );
glutIdleFunc(display);
glutDisplayFunc(display);
glutReshapeFunc(resize);
/* Enter your cod here */
glutMainLoop();
}

3. Функції resize() та display()

void resize(int width,int height)
{ glViewport(0,0,width,height);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(-5,5, -5,5, 2,12);
gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
glMatrixMode(GL_MODELVIEW);
}

void display(void)
{ glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT|
GL_DEPTH_BUFFER_BIT);
glTranslated(0.0005,0,0);
glRotated(45.0,1.0,0.0,0.0);
glColor3d(1,0,0);
glutWireSphere(1, 15,15);
glutSwapBuffers();
}


Слайд 3 Синтаксис команд та основні типи OpenGL


Функції та процедури

Синтаксис команд та основні типи OpenGLФункції та процедури OpenGL, зазвичай,

OpenGL, зазвичай, називають командами
Усі команди OpenGL мають префікс gl,

а кожна назва функції починається з великої літери, наприклад glColor(), glPushMatrix().
Узагальнений вигляд команди OpenGL:
 
rtype CommandName [1 2 3 4] [b s i f d us ui] [v] (atype arg)
 де:
CommandName – ім’я OpenGL-команди,
наприклад glVertex;
[1 2 3 4] – кількість аргументів;
[b s i f d us ui] – тип аргументів;
[v] – вектор, rtype – тип що повертається.
atype та arg - типом та кількість аргументів.
Варіанти запису команди glVertex:
glVertex2d, glVertex2f, glVertex3d, glVertex3i,
glVertex4s, glVertex2dv, glVertex2fv….
Константи OpenGL записують великими літерами,
наприклад GL_COLOR_BUFFER_BIT.

Слайд 4 Команди відображення графічних примітивів OpenGL

вершини графічних об’єктів OpenGL

Команди відображення графічних примітивів OpenGLвершини графічних об’єктів OpenGL визначаються командою glVertex*(): void

визначаються командою glVertex*():
 
void glVertex [2 3 4] [s i

f d] v (type coord); // приклад – glVertex2i(0, -4);

glVertex*() визначається чотирма координатами: x, y, z та w.
glVertex2() задає x, y, z =0, w=1. glVertex3() задає x, y, z, w=1,
glVertex4() усі 4 координати. w враховує перспективу.

Примітив OpenGL – простий графічний об’єкт (точка, лінія, багатокутник, растрове зображення), яким можна маніпулювати як єдиною дискретною сутністю.

Поточний колір об’єкта разом з умовами освітлення визначає сумарний колір, який поширюється на всі пізніше створювані примітиви – до встановлення нового.

Команди кольору:
void glColor [3 4] [b s i f d][v] (GLtype components); // встановлення RGBA-кольору
void glIndex [3 4] [s i f d] v (GLtype index); // індексний режим кольору
 
glColor3f (0.0, 0.0, 0.0); // black glColor3f (1.0, 0.0, 0.0); // red glColor3f (0.0, 1.0, 0.0); // green
Альфа-параметр визначає ступінь прозорості: 0.0 – відсутня, 1.0 – повна.

Слайд 5 Команди відображення графічних примітивів OpenGL

За допомогою наборів вершин

Команди відображення графічних примітивів OpenGLЗа допомогою наборів вершин задаються примітиви або

задаються примітиви або групи примітивів: точки, лінії, з’єднані лінії,

замкнені лінії, трикутники різного типу, позв’язані та непозв’язані чотирикутники, полігони.
Формування набору точок забезпечується комбінацією команд glBegin() / glEnd():

void glBegin (GLenum mode); // початок послідовності
void glEnd ( ); // кінець послідовності

Всередині комбінації команд glBegin() / glEnd() окрім вершин встановлюються: колір, вектор нормалі, координати текстур, властивості матеріалу, виклик списків. Використання інших команд не допускається.
Стандартно точка відображується як окремий піксель, лінія - ширину 1 піксель. Нестандартні значення задаються функціями glPointSize() та glLineWidth():
 
void glPointSize (GLfloat size); // size – ширина точки у пікселях
void glLineWidth (GLfloat width); // width – ширина лінії у пікселях


Слайд 6 Команди відображення графічних примітивів OpenGL

І

Команди відображення графічних примітивів OpenGLІ

Слайд 7 Команди відображення графічних примітивів OpenGL

Приклад з незалежними лініями:

Команди відображення графічних примітивів OpenGLПриклад з незалежними лініями: glLineWidth(5.0);glBegin(GL_LINES);	glColor3f(0.0,0.0,1.0);	glVertex3f(5.0f,0.0f,0.0f); glVertex3f(0.0f,5.0f,0.0f);	glColor3f(1.0,1.0,0.0);	glVertex3f(0.0f,0.0f,0.0f); glVertex3f(5.0f,5.0f,0.0f);glEnd();Приклад



glLineWidth(5.0);
glBegin(GL_LINES);
glColor3f(0.0,0.0,1.0);
glVertex3f(5.0f,0.0f,0.0f); glVertex3f(0.0f,5.0f,0.0f);
glColor3f(1.0,1.0,0.0);
glVertex3f(0.0f,0.0f,0.0f); glVertex3f(5.0f,5.0f,0.0f);
glEnd();
Приклад з пов’язаними лініями:

glLineWidth(10.0);
glBegin(GL_LINE_STRIP);
glColor3f(1.0,0.0,1.0);
glVertex2i(0,5); glVertex2i(5,5);
glVertex2i(5,0); glVertex2i(10,0);
glEnd();


Слайд 8 Команди відображення графічних примітивів OpenGL


Приклад із замкненою лінією:

Команди відображення графічних примітивів OpenGLПриклад із замкненою лінією: glLineWidth(15.0);glBegin(GL_LINE_LOOP);glColor3f(0.0,1.0,0.0);	for(int i=0;i



glLineWidth(15.0);
glBegin(GL_LINE_LOOP);
glColor3f(0.0,1.0,0.0);
for(int i=0;i

1
glColor3f(0.0,1.0,1.0);
glVertex2f(-0.2,0.0); glVertex2f(-5.0,0.0); glVertex2f(-2.5,-5.0); // 2
glEnd();

Слайд 9 Команди відображення графічних примітивів OpenGL

Приклад із пов’язаними трикутниками:

Команди відображення графічних примітивів OpenGLПриклад із пов’язаними трикутниками: glBegin(GL_TRIANGLE_STRIP);	glColor3f(1.0,0.5,0.0);	glVertex2f(0.0,0.0); glVertex2f(-2.5,-5.0); 	glColor3f(1.0,0.0,1.0);	glVertex2f(-5.0,0.0);



glBegin(GL_TRIANGLE_STRIP);
glColor3f(1.0,0.5,0.0);
glVertex2f(0.0,0.0); glVertex2f(-2.5,-5.0);
glColor3f(1.0,0.0,1.0);
glVertex2f(-5.0,0.0); glVertex2f(-7.5,-5.0);
glColor3f(0.0,1.0,0.0);
glVertex2f(-10.0,0.0);
glEnd();
Приклад із веєром трикутників:

glBegin(GL_TRIANGLE_FAN);
glColor3f(0.5,0.5,0.0);
glVertex2i(0,0);
glVertex2i(-2,3); glVertex2i(2,3);


glColor3f(0.0,0.0,1.0);
glVertex2i(4,0);
glColor3f(1.0,1.0,0.0);
glVertex2i(2,-3);
glEnd();

Слайд 10 Команди відображення графічних примітивів OpenGL

Приклад із незалежними чотирикутниками:

Команди відображення графічних примітивів OpenGLПриклад із незалежними чотирикутниками: glBegin(GL_QUADS);	glColor3f(1.0,0.0,0.0);	glVertex2i(0,0); glVertex2i(0,4); glVertex2i(4,4);



glBegin(GL_QUADS);
glColor3f(1.0,0.0,0.0);
glVertex2i(0,0); glVertex2i(0,4); glVertex2i(4,4); glVertex2i(4,0);
glColor3f(0.0,1.0,0.0);
glVertex3i(0,0,0); glVertex3i(0,4,0); glVertex3i(0,4,4); glVertex3i(0,0,4);


glEnd();

Приклад із пов’язаними чотирикутниками:

glBegin(GL_QUAD_STRIP);
glColor3f(1.0,0.0,0.0);
glVertex2i(0,0); glVertex2i(-2,0); glVertex2i(0,2); glVertex2i(-2,4);
glColor3f(0.0,1.0,0.0);
glVertex2i(3,2); glVertex2i(3,4);
glEnd();


Слайд 11 Команди відображення графічних примітивів OpenGL

Приклад із полігоном (правильний

Команди відображення графічних примітивів OpenGLПриклад із полігоном (правильний шостикутник): glBegin(GL_POLYGON);	glColor3f(0.0,0.5,1.0);	for(int i=0;i

шостикутник):

glBegin(GL_POLYGON);
glColor3f(0.0,0.5,1.0);
for(int i=0;i

glVertex2i(3,-3);
glVertex2i(-3,-3); glVertex2i(-5,0); // glVertex(5,0);
glVertex2i(-3,3); glVertex2i(3,3);
glEnd();

  • Имя файла: tehnologії-programuvannya-ks-lektsіya-2-chastina-2.pptx
  • Количество просмотров: 78
  • Количество скачиваний: 0