такое функция glTranslation () дает положение объекта в opengl? - PullRequest
0 голосов
/ 02 апреля 2011

Если у меня есть объект на плоскости, его значение перевода будет glTranslatef (0,10, -5), поэтому я могу предположить, что моя позиция объекта равна (0,10, -5)?Является ли перевод дает положение объектов?

1 Ответ

1 голос
/ 02 апреля 2011

Нет, glTranslatef () устанавливает Матрицу, которая гарантирует, что все объекты, нарисованные после этого оператора, будут переведены на заданную сумму.Если вы хотите перевести (позиционировать) только один объект, используйте следующее.

glLoadIdentity()
glPushMatrix();
glTranslatef(0,10,-5);
//DrawObjectOne
glPopMatrix();
//DrawObjectTwo

Этот код выполняет следующие действия:

Сначала он загружает матрицу тождеств, это буквально означает отсутствие изменений вположение, вращение или масштаб.Затем новая матрица помещается в стек матрицы.Все изменения в текущем WorldMatrix будут храниться до тех пор, пока не будет вызвана функция glPopMatrix ().

Мы изменяем матрицу текущего мира, устанавливая перевод (0,10, -5), а затем рисуем этот объект в этом месте.

Теперь мы выталкиваем текущую мировую матрицу, текущая мировая матрица теперь исчезает, и мы возвращаемся к предыдущей WorldMatrix (которая была единичной матрицей)

Затем мы рисуем объект два, который простообращается в (0,0,0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...