Senhores, boa noite.
Estou tentando elaborar um trabalho de faculdade de programação 3D em JOGL cujo objetivo é fazer com que uma esfera se movimente dentro de um cubo num eixo X do plano cartesiano, de forma que a esfera toque as paredes do cubo. Consegui construir tais figuras mas consigo fazer movimentar a esfera apenas para um lado.
Gostaria que me ajudassem a fazer com que a esfera fique se movendo de um lado para outro constantemente. Segue o código a baixo do método display:
public void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
// Clear the drawing area
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
// Reset the current matrix to the “identity”
gl.glLoadIdentity();
// Move the “drawing cursor” around
gl.glTranslatef(0.0f, 0.0f, -6.0f);
h2 = (float)a/(float)b;
gl.glPopMatrix();
gl.glViewport(0, 0, a, b);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(45.0f, h2, 0.5, 500.0);
//gl.glOrtho(-65.0, 65.0, -65, 65, -400, 400);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
glu.gluLookAt(10, 10, 100, 0, 0, 0, 0, 2, 0);
gl.glColor3f(1.0f, 1.0f, 1.0f);
// gl.glTranslatef(cx, 0.0f, -6.0f); //translate do cubo
glut.glutWireCube(50);
cx+=25;
gl.glTranslatef(tr_cilind, 0.0f, -6.0f);
glut.glutWireCylinder(2, 2, 100, 5);
if (tr_cilind<25) {
d=1;
}
if(tr_cilind>-30){
d=0;
}
if(d==1){
tr_cilind++;
}
if(d==0){
tr_cilind–;
}
}
Agradeço antecipadamente,
Lucio Nunes