Каким образом значения x, y, z, sizeX, sizeY, sizeZ должны быть помещены в вершины, чтобы получился куб?
public static void cube(float x, float y, float z, float sx, float sy, float sz){
glPushMatrix();
{
glTranslatef(x, y, z);
//Just one side of the cube is given due to too much unnecessary code.
glBegin(GL_QUADS);
glVertex3f(-1, -1, 1);
glVertex3f(1, -1, 1);
glVertex3f(1, 1, 1);
glVertex3f(-1, 1, 1);
glEnd();
}
glPopMatrix();
}
Спасибо.
1 ответ
Где бы в вашем коде вы, например, glVertex3f(-1, -1, 1);
умножьте их на соответствующее значение sx, sy, sz, разделенное на 2, например glVertex3f(-sx/2, -sy/2, sz/2);
Для позиции вы можете выдать glTranslatef(x, y, z)
перед рисованием куба. Если вы настаиваете на жестком кодировании этого в вершинах, вам следует записать приведенный выше оператор как glVertex3f(x - sx/2, y - sy/2, z + sz/2);
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.