Как вращать цилиндр в JOGL

Я нарисовал проволочный цилиндр в JOGL и хочу, чтобы он стоял, когда выходит из экрана?

Я возился со следующим кодом, чтобы выполнить поворот, но он не вращается:

gl.glRotatef(cylinder_a, 0, 0, 90);

Как правильно вращать цилиндр в JOGL?


person thrash    schedule 11.02.2013    source источник


Ответы (1)


Согласно документация JOGL для gl.glRotatef его аргументы: angle, x, y, z. С аргументами 0, 0, 90 для x, y, z вы определяете вектор вдоль +z, указывающий за пределы экрана. Это означает, что вы вращаете цилиндр вокруг своей оси, поэтому изменение не очевидно. Чтобы заставить его стоять «вертикально», вам нужно повернуть его вокруг оси x.

(Вы можете изменить способ, которым x, y и z указывают в OpenGL, но обычно +x указывает вправо, +y указывает вверх, а +z «выходит» за пределы экрана. Вы можете использовать правило правой руки, чтобы запомнить это.)

person 31eee384    schedule 11.02.2013
comment
Спасибо за ответ, сначала попробовал, но ничего не вышло. Я только что попробовал еще раз, и он вообще не двигался, я не очень понимаю, почему. Неважно, насколько большим или маленьким я делаю какие-либо значения, они просто не двигаются :/ - person thrash; 12.02.2013
comment
Хм, тогда трудно сказать, в чем проблема, если вы не опубликуете код. Однако, чтобы предположить, может быть, вызов glRotatef находится в неправильном месте в вашем коде? - person 31eee384; 12.02.2013