Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - OpenGL и материалы

Ответить
Настройки темы
C/C++ - OpenGL и материалы

Пользователь


Сообщения: 107
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Есть программа:
Код: Выделить весь код
#include <GL/glut.h> 

static int kv= 1;
static int kd = 1;

void reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0, w, 0, h);
	
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

static void key(unsigned char key, int x, int y)
{
    switch (key) 
    {
        case 27 : 
        case 'q':
            exit(0);
            break;

        case '+':
            if (kv < 75 & kd < 75) 
            {
             kv += 1;
             kd += 1;
            }
            break;

        case '-': 
            if (kv > -5 & kd > -5) 
            {
             kv -= 1; 
             kd -= 1; 
            }
            break;
    }

    glutPostRedisplay();
}


void display()
{

	glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glClear(GL_COLOR_BUFFER_BIT);
	
	glBegin(GL_POLYGON);
	glColor3f(0.0, 0.0, 1.0);
	glVertex2i(150 - kv,300);
	glVertex2i(200, 250-kv);
	glVertex2i(300+kv, 300);
	glVertex2i(275, 350+kv);
	glVertex2i(200, 350+kv);
	glEnd();
	

	
	glBegin(GL_POLYGON);
	glColor3f(0.0, 0.0, 1.0);
	glVertex2i(450-kd, 300);
	glColor3f(0.0, 1.0, 0.0);
	glVertex2i(500, 250-kd);
	glColor3f(1.0, 0.0, 1.0);
	glVertex2i(600, 250-kd);
	glColor3f(1.0, 1.0, 0.0);
	glVertex2i(610+kd,260);
	glColor3f(1.5, 0.5, 0);
	glVertex2i(575, 350+kd);
	glColor3f(0.0, 1.0, 1.0);
	glVertex2i(500, 350+kd);

	glEnd();
	
	glutSwapBuffers();
}



int main (int argc, char * argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
	glutInitWindowSize(800, 600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Lab Darbs1");
	glutKeyboardFunc(key);
	glClearColor(1,1,1,1);
	
	glutReshapeFunc(reshape);
	glutDisplayFunc(display);
	
	glutMainLoop();
	
	return 0;
}
И надо сделать так чтоб многоугольники выглядели как стекло. Помогите хоть как начать.

Отправлено: 16:18, 20-04-2012

 

Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Может, сперва нужно в графическом редакторе типа Paint создать текстуру, напоминающую стекло, и наложить ее на многоугольник. Работа с графическим редкатором - это очень важная часть работы при программировании графики.

Отправлено: 03:06, 28-04-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - OpenGL и материалы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как формировать ссылки на материалы в Joomla методом GET? Sticher78 Вебмастеру 3 24-12-2011 12:22
Стали доступны все материалы конференции «Платформа 2011»! OSZone News Новости и события Microsoft 0 14-12-2010 21:30
Отказные материалы ОтказL 10.4 OSZone Software Новости программного обеспечения 0 12-04-2010 21:30




 
Переход