Контрольная работа

Контрольная работа Работа с цветом в библиотеке OpenGL

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.9.2024





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

им. Т.Г.Шевченко
Контрольная работа №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;
//Функция вырисовки на экране

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 '\033'
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();

}


Результаты:

for_second_lab.jpg

1. Реферат на тему In Search Of Excellence Book Review Essay 2
2. Курсовая Разработка термостата и канала обработки аналогового сигнала
3. Реферат ОМС міський фонд чи міжлікарняна каса
4. Реферат Джерела забрудненого середовища
5. Реферат на тему Beer The Production History And Consumption Of
6. Курсовая на тему Теоретико-концептуальні аспекти раціонального харчування
7. Реферат на тему Twelve Angery Men
8. Реферат на тему Much Ado About Nothing 3 Essay Research
9. Реферат на тему Life Styles Essay Research Paper The lifestyle
10. Реферат Распределение доходов между звеньями бюджетной системы. Принципы и методы бюджетного финансирова