Реферат: Основные конструкции библиотеки 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();

}

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

voidReshape(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();

}

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

voidKeyboard(unsigned char key, int x, int y)

{

#define ESCAPE'\033'

if (key ==ESCAPE)

exit(0);

}

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

void main(intargc, char* argv[])

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_RGB);

glutInitWindowSize(Width,Height);

glutCreateWindow(«Sin(x)»);

glutDisplayFunc(Display);

glutReshapeFunc(Reshape);

glutKeyboardFunc(Keyboard);

glutMainLoop();

}

Результаты:

/>

еще рефераты
Еще работы по информатике, программированию