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

1628
знаков
0
таблиц
1
изображение

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

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

Контрольная работа №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();

}

Результаты:


Информация о работе «Основные конструкции библиотеки OpenGL»
Раздел: Информатика, программирование
Количество знаков с пробелами: 1628
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
41796
0
8

... , комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (реализовано в .NET Framework 3.0). C# ...

Скачать
129055
6
1

... согласно заданному алгоритму. Все ошибочные ситуации были рассмотрены, ошибки – устранены. 4. Применение программы 4.1 Назначение программы Программа предназначена для создания и редактирования сложных графических эффектов частиц. В процессе разработки была обеспечена реализация программой следующего набора функций: - управление динамическим набором эмиттеров (систем частиц); - ...

Скачать
112439
9
11

... приложением DOS, то имеет недружелюбный интерфейс, однако является достаточно мощным. Кроме вышеназванных пакетов и программ есть еще множество других средств для визуализации инженерных и научных расчетов – от сложных и универсальных, до простых, узкоспециальных. Но для своих специфических применений разработчики отдельных подсистем САПР разрабатывают свои пакеты или покупают и настраивают уже ...

Скачать
73518
3
12

... , появившиеся в начале 80-х были вообще 10-мегабайтными. И по тем временам люди просто не знали, что делать с таким колоссальным объемом. Однако сейчас стандартным считается винчестер объемом 20 – 40 Гб. Не редкость жесткие диски и объемом 60 – 80 Гб. Для комфортной работы мультимедийный компьютер должен иметь винчестер емкостью не менее 10 Гб. Параметры жестких дисков Практически все ...

0 комментариев


Наверх