0

我可以向右、向左、向上和向下操作屏幕。这样做时,我的 glTranslate 是 -> glTranslate(x,y,z) 当我按下按钮时相应地发生变化。但是,我想绘制圆柱体的 3d 锥顶(如火箭形状)。当我这样做时,它们正在交织在一起。这里我如何移动它:

if (keys[VK_UP])                
{
    y -= 0.02f;            
}
if (keys[VK_DOWN])              
{
    y += 0.02f;              
}....

这部分是我绘制形状的地方:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glLoadIdentity();                                   
glMatrixMode(GL_MODELVIEW);

glTranslatef(x, y, z);                      

gluLookAt(7, 1, -3, //< eye position
0, 0, 0,  //< aim position
0, 1, 0); //< up direction

一个圆锥:

glColor3f(1, 0, 0);
glBegin(GL_POLYGON);
GLUquadricObj* obj1 = gluNewQuadric();

gluCylinder(obj1, 1.0, 0, 2, 30, 30);

glEnd();

在圆柱体顶部:

glLoadIdentity();
glTranslatef(x+2, y-0.01, z);// here I tried to move a little, but they still look separated when I move it.                    

gluLookAt(7, 1, -3,
    0, 0, 0,  
    0, 1, 0); 
glColor3f(0, 1, 0);
glBegin(GL_POLYGON);
GLUquadricObj* obj = gluNewQuadric();

gluCylinder(obj, 1.0, 1, 3, 30, 30);

glEnd();

我能做些什么呢?(我希望它们在我按键时同步移动)

4

0 回答 0