Контрольная работа по предмету "Информатика, программирование"


Основные конструкции библиотеки OpenGL

Приднестровский
Государственный Университет



им.
Т.Г.Шевченко



























Контрольная
работа №1



Тема: «Основные
конструкции библиотеки OpenGL».



























Тирасполь, 2010 г.







1. Цель: Изучить основные
конструкции библиотеки OpenGL.



2. Задача: Построить
график функций y=sin(x)



3. Методика решения: Определяем
область значений функции и строим график по точкам, соединяя их отрезками.





Решение:





#include
<GL/glut.h>



#include
<stdlib.h>



#include
<math.h>



GLint Width = 512, Height
= 512; //начальные размеры окна





//Функция вырисовки на
экране



void Display()



{





glClearColor(1,
1, 1, 1);



glClear(GL_COLOR_BUFFER_BIT);







glColor3d(0,
0, 0);





glBegin(GL_LINES);



glVertex2d(0,
0);



glVertex2d(10,
0);



glVertex2d(0,
-1.5);



glVertex2d(0,
1.5);



glEnd();





glColor3d(0,
0, 1);



glBegin(GL_LINE_STRIP);



for (double i
= 0; i < 10; i += 0.1)



glVertex2d(i,
sin(i));



glEnd();





glFinish();



}





//Функция вызывается при
изменении размеров окна



void
Reshape(GLint w, GLint h)



{



Width = w;



Height = h;





// устанавливаем размеры
области отображения



glViewport(0, 0, w, h);





// отрографическая
проекция



glMatrixMode(GL_PROJECTION);



glLoadIdentity();



glOrtho(-2,
12, -2, 2, -1, 1);





glMatrixMode(GL_MODELVIEW);



glLoadIdentity();



}





// Функция обработки
сообщений с клавиатуры



void
Keyboard(unsigned char key, int x, int y)



{



#define ESCAPE
'\033'



if (key ==
ESCAPE)



exit(0);



}





// Главный цикл приложения



void main(int
argc, char* argv[])



{



glutInit(&argc,
argv);



glutInitDisplayMode(GLUT_RGB);



glutInitWindowSize(Width,
Height);



glutCreateWindow("Sin(x)");





glutDisplayFunc(Display);



glutReshapeFunc(Reshape);



glutKeyboardFunc(Keyboard);





glutMainLoop();



}





Результаты:







Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :