Приднестровский Государственный Университет
им. Т.Г.Шевченко
Контрольная работа №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();
}
Результаты:
Похожие работы
... , комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (реализовано в .NET Framework 3.0). C# ...
... согласно заданному алгоритму. Все ошибочные ситуации были рассмотрены, ошибки – устранены. 4. Применение программы 4.1 Назначение программы Программа предназначена для создания и редактирования сложных графических эффектов частиц. В процессе разработки была обеспечена реализация программой следующего набора функций: - управление динамическим набором эмиттеров (систем частиц); - ...
... приложением DOS, то имеет недружелюбный интерфейс, однако является достаточно мощным. Кроме вышеназванных пакетов и программ есть еще множество других средств для визуализации инженерных и научных расчетов – от сложных и универсальных, до простых, узкоспециальных. Но для своих специфических применений разработчики отдельных подсистем САПР разрабатывают свои пакеты или покупают и настраивают уже ...
... , появившиеся в начале 80-х были вообще 10-мегабайтными. И по тем временам люди просто не знали, что делать с таким колоссальным объемом. Однако сейчас стандартным считается винчестер объемом 20 – 40 Гб. Не редкость жесткие диски и объемом 60 – 80 Гб. Для комфортной работы мультимедийный компьютер должен иметь винчестер емкостью не менее 10 Гб. Параметры жестких дисков Практически все ...
0 комментариев