Учебники

JOGL — Трансформация

OpenGL предоставляет больше возможностей, таких как применение цветов к объекту, масштабирование, освещение, вращение объекта и т. Д. В этой главе описываются некоторые преобразования объектов с использованием JOGL.

Перемещение объекта в окне

В предыдущих главах мы обсуждали программы для рисования линий и рисования различных фигур с использованием простых линий. Созданные таким образом фигуры могут отображаться в любом месте окна. Это делается с помощью метода glTranslatef (float x, float y, float z) .

Этот метод принадлежит интерфейсу GLMatrixFunc , который находится в пакете javax.media.opengl.fixedfunc .

Интерфейс GLMatrixFunc

интерфейс — GLMatrixFunc

пакет — javax.media.opengl.fixedfunc

В следующей таблице перечислены некоторые важные методы этого интерфейса.

Sr.No. Методы и описание
1

void glRotatef (угол плавания, число с плавающей точкой x, число с плавающей точкой y, число с плавающей точкой z)

Вращает текущую матрицу.

2

void glScalef (float x, float y, float z)

Используется для масштабирования текущей матрицы.

3

void glTranslatef (float x, float y, float z)

Используется для перевода текущей матрицы.

4

void glLoadIdentity ()

Загружает текущую матрицу с единичной матрицей.

void glRotatef (угол плавания, число с плавающей точкой x, число с плавающей точкой y, число с плавающей точкой z)

Вращает текущую матрицу.

void glScalef (float x, float y, float z)

Используется для масштабирования текущей матрицы.

void glTranslatef (float x, float y, float z)

Используется для перевода текущей матрицы.

void glLoadIdentity ()

Загружает текущую матрицу с единичной матрицей.

Метод glTranslate () перемещает начало системы координат в точку, заданную параметрами (x, y, z), переданную методу glTranslate () как

аргумент. Для сохранения и восстановления непереведенной системы координат используются методы glPushMatrix () и glPopMatrix () .

gl.glTranslatef(0f, 0f, -2.5f); 

Всякий раз, когда используется glTranslate () , он меняет положение компонента на экране. Следовательно, метод reshape () интерфейса GLEventListener должен быть переопределен, а область просмотра OpenGL и матрица проекции должны быть инициализированы.

Следующий код показывает шаблон для инициализации порта просмотра и матрицы проекции —