Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 12:17   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию OpenGL определить координаты после translate rotate

Код:
 //запись преобразования наблюдения
    glPushMatrix();
    glTranslatef(-10.0, 0.0, 5.0);
    glRotatef(i * 150, 0.0, 1.0, 1.0);
    glBegin(GL_TRIANGLES);
        glColor3f(0.75, 0.2, 1.0);
        glVertex3f(0.0, 2.0, 0.0);
        glVertex3f(2.0, -2.0, 0.0);
        glVertex3f(-2.0, -2.0, 0.0);
    glEnd();
    glPopMatrix();
приведен кусок кода, изображает треугольник. исходные координаты вершин известны, я их руками задал. Но из-за glTranslatef(); и glRotatef(); координаты, в окне просмотра, изменяются. А мне надо их знать.
НЕт-ли в openGL функции определяющей координаты вершин примитива? или как-то по своему вычислять?
SAMOUCHKA вне форума Ответить с цитированием
Старый 14.03.2012, 13:06   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

после трансляции расчитать довольно просто. чего не скажеш о вращении.
SAMOUCHKA вне форума Ответить с цитированием
Старый 14.03.2012, 20:58   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

что мешает сделать Get текущей modelview матрицы и применить ее к координатам треугольника?
f.hump вне форума Ответить с цитированием
Старый 14.03.2012, 23:44   #4
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
что мешает сделать Get текущей modelview матрицы и применить ее к координатам треугольника?
а можно конкретный пример
не помешает
SAMOUCHKA вне форума Ответить с цитированием
Старый 15.03.2012, 16:06   #5
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

готового примера нет, но наверно как-то так:

Код:
float tMatrix[16];
float triVertices[][4] = {{0.75f, 0.2f, 1.0f, 1.0f}, {0.0, 0.2f, 0.0, 1.0f}, ..}, transformedV[] = {0.0, 0.0, 0.0, 1.0f};
int vertexIndex = 0;

glGetFloatfv(GL_MODELVIEW_MATRIX,tMatrix);



for (int i(0);i<3;i++) {
  transformedV[i] = 0.0;
  for (int j(0);j<3;j++) {
    transformedV[i] += tMatrix[j*4+i]*triVertices[vertexIndex][j]
  }
}
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты OpenGL Демик Visual C++ 3 26.05.2011 17:03
Координаты OpenGL Демик Общие вопросы C/C++ 2 26.05.2011 11:07
Координаты OpenGL Демик Помощь студентам 0 26.05.2011 00:40
Координаты в OpenGL Delphi Gelirgwenn Помощь студентам 2 20.04.2011 10:09
OpenGL координаты zumm Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.07.2010 09:19