Я пытаюсь переместить треугольник в направлении верхней вершины.Перемещение объекта в направлении с opengl java
В зависимости от угла поворота.
Это мой код:
private static void render() {
// Clear the pixels on the screen and clear the contents of the depth buffer (3D contents of the scene)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Reset any translations the camera made last frame update
glLoadIdentity();
// Apply the camera position and orientation to the scene
//camera.applyTranslations();
glTranslated(0,0,-5);
glPushMatrix();
glRotated(f.get_direction(),0,0,1);
glTranslated(x,y,0);
f.draw();
glPopMatrix();
x+=(f.get_speed()/30)*cos(f.get_direction()+90);
y+=(f.get_speed()/30)*sin(f.get_direction()+90);
}
Дело в том, что независимо от того, что угол поворота, который является направление, я хочу, чтобы переместить треугольник в соответствии с ним.
Пожалуйста, объясните, в чем проблема. И функция cos/sin в java принимает радианы, поэтому +90 выглядит неправильно для меня. – BDL
Поменяйте порядок вращения и перевод. Поскольку последнее указанное преобразование применяется сначала, ваш текущий код сначала переводит, а затем вращается. Похоже, ты хочешь наоборот. –