Помощь в написании студенческих работ
Антистрессовый сервис

Работа с цветом в библиотеке OpenGL

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

GlVertex2d (9, 7); GlVertex2d (9, 5); GlVertex2d (7, 7); GlVertex2d (7, 5); GlVertex2d (5, 7); GlVertex2d (5, 5); GlVertex2d (3, 7); GlVertex2d (3, 5); GlVertex2d (2, 7); GlVertex2d (2, 5); GlLoadIdentity (); GlLoadIdentity (); Void Display (). If (key == 'y'). If (key == 't'). If (key == 'r'). If (key == 'h'). If (key == 'g'). If (key == 'f'). GlutMainLoop (); Решение: Красный. Зеленый. Голубой… Читать ещё >

Работа с цветом в библиотеке OpenGL (реферат, курсовая, диплом, контрольная)

Приднестровский Государственный Университет им. Т. Г. Шевченко Контрольная работа № 2

Тема: «Работа с цветом в библиотеке OpenGL».

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

1. Цель: Научиться работать с цветом, используя графическую библиотеку OpenGL.

2. Задача: Написать программу, отображающую:

1. квадрат, с меняющимся цветом, в зависимости от изменения градиентов (R, G, B).

2. треугольник, вершины которого имеют цвета (0. 1, 1), (1, 0, 1), (1, 1, 0).

3. прямоугольная полоса в виде спектра.

3. Методика решения: Строим поочередно данные фигуры, закрашивая соответствующими цветами.

Решение:

#include

#include

#include

GLint Width = 800, Height = 600;

GLdouble r = 0, g = 0, b = 0;

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

void Display ()

{

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

}

Результаты:

Показать весь текст
Заполнить форму текущей работой