2016-06-29 2 views
0

У меня есть куб и сфера в моей среде Opengl. Который создаетсяКак самостоятельно манипулировать/преобразовывать объекты в Opengl?

//Create Cube 
glPushMatrix(); 
glTranslated(-5.0,0.0,0.0); 
glDrawCube(7.5f); 
glPopMatrix(); 

//Create Sphere 
glPushMatrix(); 
glTranslated(10.0,0.0,0.0); 
glDrawSphereIcosahedron(4.5f,6);  
glPopMatrix(); 

Что получается: Куб и сфера создается. Трансформация/манипуляция зависят. Если я попытаюсь повернуть куб, сфера также повернется вместе с ним.

Что я хочу Я хочу, чтобы куб и сфера имели трансформацию/манипуляцию независимо друг от друга. Если я вращать куб, шар не должен перемещать/вращать

То, что я пытался Я попытался с помощью glPushMatrix(), glloadMatrix() с указанным кодом, но он по-прежнему имеет один и тот же вопрос.

Заранее благодарим за ваше время.

ответ

2

Если вы поместите glRotate внутри пары glPushMatrix()/glPopMatrix(), то вращение будет применяться только к объекту, нарисованному внутри блока. Если вы поместите glRotate вне этой пары, это вращение будет применено ко всему объекту, нарисованному после них.

+0

Спасибо, да, это правильно. Но он работает только при его рендеринге. Я хочу, чтобы куб вращался независимо при выборе куба, а не сферы. Надеюсь, я поняла. – khadkaboy

+2

@khadkaboy Как насчет этого ответа не подходит для вас? Что означает «только при его рендеринге изначально»? Этот код должен быть в вашем основном цикле обновления, если вы хотите, чтобы они отображались и вращались непрерывно. – Dan

+0

@ Dan Я не хочу, чтобы кубы вращались непрерывно, вместо этого я хочу выбрать объект (теперь можно сказать куб), а затем манипулировать кубом, не внося никаких изменений или эффектов в созданную сферу. Но я не могу этого сделать. – khadkaboy