2013-06-18 2 views
0

Так я есть 3D куб, и у меня есть матрицу 3х3, что я преобразование, чтобы получить угол и ось, чтобы использовать их в качестве параметров вOpenGL 3D Куб Вращение

gl.glRotatef (угол, х, у , z);

Однако, куб не вращается должным образом, и это, кажется, как метод

glTranslatef (флоат х, поплавок у, поплавок г)

как огромное значение, но я действительно не знаю, что он делает .. Вот код:

@Override 
public void onDrawFrame(GL10 gl) { 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);   
    gl.glLoadIdentity(); 

    gl.glTranslatef(0.0f, 0.0f, -10.0f); 

    gl.glRotatef(angle, x, y, z); 

    mCube.draw(gl); 

} 

угла, х, у и г является значением я получаю после преобразования матрицы.

Что я делаю неправильно?

спасибо.

ответ

0

Что вы видите при запуске этой программы?

Просто чтобы убедиться, определение для glRotatef здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368577(v=vs.85).aspx

«угол» часть в градусах. Я допустил ошибку, передав ей радианы несколько раз, и кажется, что мой объект не вращается. Кроме того, glTranslatef будет перемещать ваш объект в направлении +/- xyz. Традиционно + y вверх, + x - справа, а + z - на экране. Это может измениться в зависимости от нескольких вещей, например, от вашей матрицы представлений.

+0

СПАСИБО! я не знал, что это было в градусах, поэтому я просто умножился на 57.2957795, чтобы получить значение в степени, и это работает как шарм! –

Смежные вопросы