IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> OpenGL C++, вращение
сообщение
Сообщение #1


Ночной волк
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской

Репутация: -  1  +


Согласно задумке градиентная пирамида должна вращаться относительно y, но этого не происходит. Через час получилось чтото типа пирамиды, но она не движется. В чем моя ошибка?
#include <GL/glut.h>
GLfloat rtri=10; // gthdsq eujk


void display()
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Î÷èñòêà ýêðàíà è áóôåðà ãëóáèíû
glLoadIdentity(); // Ñáðîñ ïðîñìîòðà
//glTranslatef(-1.5f,0.0f,-6.0f); // Ñäâèã âëåâî è âãëóáü ýêðàíà
glRotatef(rtri,0.0f,1.0f,0.0f); // Âðàùåíèå ïèðàìèäû ïî îñè Y
glBegin(GL_TRIANGLES); // Íà÷àëî ðèñîâàíèÿ ïèðàìèäû

glColor3f(1.0f,0.0f,0.0f); // Êðàñíûé
glVertex3f( 0.0f, 1.0f, 0.0f); // Âåðõ òðåóãîëüíèêà (Ïåðåäíÿÿ)
glColor3f(0.0f,1.0f,0.0f); // Çåëåííûé
glVertex3f(-1.0f,-1.0f, 1.0f); // Ëåâàÿ òî÷êà
glColor3f(0.0f,0.0f,1.0f); // Ñèíèé
glVertex3f( 1.0f,-1.0f, 1.0f); // Ïðàâàÿ òî÷êà

glColor3f(1.0f,0.0f,0.0f); // Êðàñíàÿ
glVertex3f( 0.0f, 1.0f, 0.0f); // Âåðõ òðåóãîëüíèêà (Ïðàâàÿ)
glColor3f(0.0f,0.0f,1.0f); // Ñèíèÿ
glVertex3f( 1.0f,-1.0f, 1.0f); // Ëåâî òðåóãîëüíèêà (Ïðàâàÿ)
glColor3f(0.0f,1.0f,0.0f); // Çåëåííàÿ
glVertex3f( 1.0f,-1.0f, -1.0f); // Ïðàâî òðåóãîëüíèêà (Ïðàâàÿ)

glColor3f(1.0f,0.0f,0.0f); // Êðàñíûé
glVertex3f( 0.0f, 1.0f, 0.0f); // Íèç òðåóãîëüíèêà (Ñçàäè)
glColor3f(0.0f,1.0f,0.0f); // Çåëåííûé
glVertex3f( 1.0f,-1.0f, -1.0f); // Ëåâî òðåóãîëüíèêà (Ñçàäè)
glColor3f(0.0f,0.0f,1.0f); // Ñèíèé
glVertex3f(-1.0f,-1.0f, -1.0f); // Ïðàâî òðåóãîëüíèêà (Ñçàäè)

glColor3f(1.0f,0.0f,0.0f); // Êðàñíûé
glVertex3f( 0.0f, 1.0f, 0.0f); // Âåðõ òðåóãîëüíèêà (Ëåâî)
glColor3f(0.0f,0.0f,1.0f); // Ñèíèé
glVertex3f(-1.0f,-1.0f,-1.0f); // Ëåâî òðåóãîëüíèêà (Ëåâî)
glColor3f(0.0f,1.0f,0.0f); // Çåëåííûé
glVertex3f(-1.0f,-1.0f, 1.0f); // Ïðàâî òðåóãîëüíèêà (Ëåâî)
glEnd();
rtri+=0.2f; // Óâåëè÷èì ïåðåìåííóþ âðàùåíèÿ äëÿ òðåóãîëüíèêà
glFlush();
}

int main(int argc, char **argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(800, 600);
glutInitWindowPosition(0, 0);
glutCreateWindow("Test");
glClearColor(1.0, 1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glutDisplayFunc(display);
glutMainLoop();

return 0;
}


--------------------
Не думай о белой обезьяне.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
сообщение
Сообщение #2


Гость






Цитата
В чем моя ошибка?
В том, что ты не заставляешь ее двигаться... Смотри:
#include <GL/glut.h>

GLfloat rtri = 10;

void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();

glRotatef(rtri,0.0f,1.0f,0.0f);

glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(-1.0f,-1.0f, 1.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(1.0f,-1.0f, 1.0f);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(1.0f,-1.0f, 1.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(1.0f,-1.0f, -1.0f);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(1.0f,-1.0f, -1.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(-1.0f,-1.0f, -1.0f);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(-1.0f,-1.0f, 1.0f);
glEnd();

glPopMatrix();
glutSwapBuffers();
glutPostRedisplay(); /* Заставляем сцену перерисоваться */
}

/* Промежуточные вычисления лучше делать здесь, OnIdle */
void idle()
{
rtri += 0.2f;
}

int main(int argc, char **argv){
glutInit(&argc, argv);
glutInitWindowSize(800, 600);
glutInitWindowPosition(0, 0);

/* Двойная буферизация, чтобы убрать мерцание при вращении !!! */
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutCreateWindow("test");

glClearColor(0, 0, 0, 0);
glOrtho(-5,5,-5,5,-5,5);
glEnable(GL_DEPTH_TEST);

glutDisplayFunc(display);
glutIdleFunc(idle);
glutMainLoop();
return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ночной волк
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской

Репутация: -  1  +


О круто, спасибо.
может посоветуешь что-нибудь из литературы по openGL? А то дергаю отрывки с разных сайтов, такая каша в башке..


--------------------
Не думай о белой обезьяне.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name