OpenGL движение фигуры
Ребят объясните доходчиво каким образом понять из-за чего не двигается фигура? Глобальные переменные
GLfloat animationAngle = 0.0f;
GLfloat animationOffsetX = 0.0f;
GLfloat animationOffsetZ = 0.0f;
GLfloat animationSpeed = 0.03f;
GLfloat movementAmplitude = 3.0f;
Функции
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(cameraMotionHelper.getDistance(),
cameraMotionHelper.getDistance(),
cameraMotionHelper.getDistance(),
0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f);
glRotatef(cameraMotionHelper.getRotationXZ(), 1.0f, 0.0f, -1.0f);
glRotatef(cameraMotionHelper.getRotationY(), 0.0f, 1.0f, 0.0f);
glPushMatrix();
GLfloat lightPos[] = { 5.0f, 5.0f, 0.0f, 1.0f };
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
glTranslatef(lightPos[0], lightPos[1], lightPos[2]);
renderLamp();
// Ось координат
axis(15.0f);
glPushMatrix();
glTranslatef(animationOffsetX, 0.0f, animationOffsetZ);
glRotatef(animationAngle, 1.0f, 0.0f, 0.0f);
axis(3.0f);
glScalef(1.5f, 1.5f, 1.5f);
renderModel();
glColor3f(1.0f, 1.0f, 1.0f);
renderText("test", 0.1f, 0.2f, 0.3f);
glPopMatrix();
glutSwapBuffers();
}
void updateAnimation(int value) {
// Получаем время для плавной анимации
GLfloat time = glutGet(GLUT_ELAPSED_TIME) * 0.001f;
// Вращение вокруг оси X (непрерывное)
// Вращение вокруг оси X
animationAngle += 2.0f;
if (animationAngle > 360.0f) {
animationAngle -= 360.0f;
}
// Смещение вдоль XZ с использованием синуса
animationOffsetX = sin(time * animationSpeed) * movementAmplitude;
animationOffsetZ = sin(time * animationSpeed) * movementAmplitude;
// Альтернатива: движение по отдельности по каждой оси
// animationOffsetX = sin(time * animationSpeed) * movementAmplitude;
// animationOffsetZ = sin(time * animationSpeed * 0.8f + 1.5f) * movementAmplitude;
glutPostRedisplay();
glutTimerFunc(16, updateAnimation, 0);
}
поставил точку для дебага в glTranslatef(animationOffsetX, 0.0f, animationOffsetZ);
-
выдал такое значениеlightPos 0x0000000b1ed8ee78 {5.00000000, 5.00000000, 0.00000000, 1.00000000} float[4]
сама фигура находиться в заголовочном файле и построена с помощью треугольников которая имеет массив