Название: Работа с цветом в библиотеке OpenGL
Вид работы: контрольная работа
Рубрика: Информатика и программирование
Размер файла: 51.84 Kb
Скачать файл: referat.me-140110.docx
Краткое описание работы: Работа с цветом с помощью графической библиотеки OpenGL. Программа, отображающая квадрат, с меняющимся цветом, в зависимости от изменения градиентов (R,G,B), треугольник, вершины которого имеют различные цвета, прямоугольную полосу в виде спектра.
Работа с цветом в библиотеке OpenGL
Приднестровский Государственный Университет
им. Т.Г.Шевченко
Контрольная работа №2
Тема: «Работа с цветом в библиотеке OpenGL».
Тирасполь, 2010 г.
1. Цель: Научиться работать с цветом, используя графическую библиотеку OpenGL.
2. Задача: Написать программу, отображающую:
1. квадрат, с меняющимся цветом, в зависимости от изменения градиентов (R,G,B).
2. треугольник, вершины которого имеют цвета (0. 1, 1), (1, 0, 1), (1, 1, 0).
3. прямоугольная полоса в виде спектра.
3. Методика решения: Строим поочередно данные фигуры, закрашивая соответствующими цветами.
Решение:
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
GLint Width = 800, Height = 600;
GLdouble r = 0, g = 0, b = 0;
//Функция вырисовки на экране
voidDisplay()
{
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);
// квадрат, меняющий цвет
glBegin(GL_QUADS);
glColor3d(r, g, b);
glVertex2i(2, 10);
glVertex2i(2, 15);
glVertex2i(7, 15);
glVertex2i(7, 10);
glEnd();
//треугольник
glBegin(GL_TRIANGLES);
glColor3d(0, 1, 1);
glVertex2d(10, 10);
glColor3d(1, 0, 1);
glVertex2d(14, 15);
glColor3d(1, 1, 0);
glVertex2d(19, 10);
glEnd();
// полоска в виде спектра
glBegin(GL_QUAD_STRIP);
//красный
glColor3ub(255, 0, 0);
glVertex2d(2, 5);
glVertex2d(2, 7);
glVertex2d(3, 5);
glVertex2d(3, 7);
//оранжевый
glColor3ub(255, 128, 0);
glVertex2d(5, 5);
glVertex2d(5, 7);
//желтый
glColor3ub(255, 255, 0);
glVertex2d(7, 5);
glVertex2d(7, 7);
//зеленый
glColor3ub(0, 255, 0);
glVertex2d(9, 5);
glVertex2d(9, 7);
//голубой
glColor3ub(0, 255, 255);
glVertex2d(11, 5);
glVertex2d(11, 7);
//синий
glColor3ub(0, 0, 255);
glVertex2d(13, 5);
glVertex2d(13, 7);
//фиолетовый
glColor3ub(128, 0, 255);
glVertex2d(15, 5);
glVertex2d(15, 7);
glEnd();
glFinish();
}
//Функция вызывается при изменении размеров окна
void Reshape(GLint w, GLint h)
{
Width = w;
Height = h;
// устанавливаем размеры области отображения
glViewport(0, 0, w, h);
// отрографическая проекция
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 20, 0, 20, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
// Функция обработки сообщений с клавиатуры
void Keyboard(unsigned char key, int x, int y)
{
#define ESCAPE ' 33'
if (key == ESCAPE)
exit(0);
if (key == 'r')
r -= 0.05;
if (key == 'f')
r += 0.05;
if (key == 't')
g -= 0.05;
if (key == 'g')
g += 0.05;
if (key == 'y')
b -= 0.05;
if (key == 'h')
b += 0.05;
glutPostRedisplay();
}
// Главный цикл приложения
void main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(Width, Height);
glutCreateWindow("wtf");
glutDisplayFunc(Display);
glutReshapeFunc(Reshape);
glutKeyboardFunc(Keyboard);
glutMainLoop();
}
Результаты:
Похожие работы
-
OpenGL и Delphi на практике
Предлагаю не откладывая в долгий ящик написать первую программу на OpenGL - а потом, окрылившись успехом, вернуться к теории и как следует проштудировать все книги и сайты по сабжу, чтобы уж стать настоящими монстрами трехмерного моделирования.
-
Графічна бібліотека OpenGl
Програма створення графіки OpenGl. Алгоритми зафарбовування від внутрішньої точки до границь довільного контуру. Алгоритм обчислення координати точки кривої Без'є за заданними параметрами. Створення програм OpenGL мовою С, C++ у середовищі Windows.
-
Основы программирования OpenGL в Borland С++Builder и Delphi. Простейшие объекты
Рассматривая какой-либо трёхмерный объект, мы всегда определяем его положение и размеры относительно некоторой привычной, и удобной в настоящий момент системы координат, связанной с реальным миром.
-
Что такое DirectX?
DirectX представляет собой набор технологий и инструментов, которые позволяют создавать разработчику игры и мультимедиа приложения с неслыханным во времена MS-DOS качеством графики и звука.
-
Построение геометрических тел с помощью библиотеки OpenGL
Создание программы, с помощью библиотеки OpenGL рисующей проволочный чайник с поворотом рисунка вокруг осей X, Y, Z. Построение отрографической проекции. Установка области отображения. Функция обработки сообщений с клавиатуры. Главный цикл приложения.
-
Использование OpenGL
Программный код OpenGL. Синтаксис команд OpenGL. OpenGL как конечный автомат. Конвейер визуализации OpenGL. Библиотеки, относящиеся к OpenGL. Библиотека OpenGL. Подключаемые файлы. GLUT, инструментарий утилит библиотеки OpenGL.
-
Создание графических объектов с помощью псевдографики
Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.
-
Модель трехмерной сцены и библиотека OpenGL
Построение динамической трехмерной сцены, включающей заданные тело и поверхность определенного вида средствами графической библиотеки. Наложение текстур на тела, поверхности с помощью функции SetupTextures. Графическое представление тела с текстурой.
-
Компьютерная графика OpenGL
Руководство пользователя и программиста. Тесты.
-
Управление элементами поверхности
Изучение основных возможностей создания трехмерных объектов в программе OpenGL, методика наложения текстур. Механизм подключения библиотек. Создание поверхности ландшафта. Реализация ориентирования на поверхности. Изменение поверхности ландшафта.