#c #opengl #opengl-es-2.0 #opengl-3
#c #opengl #opengl-es-2.0 #opengl-3
Вопрос:
Я пытаюсь повернуть равнобедренный треугольник в определенном направлении в OpenGL (все это в 2D). Например, если треугольник движется вверх, то треугольник должен быть направлен вверх, и это должно применяться во всех направлениях (вниз -правая сторона-левая сторона -вверх справа … и т.д.) на плоскости.
Вопрос в том, как это можно сделать? У меня есть точки (x, y) для перевода и направление, которое является углом (не радианом). Код следующий.
void Graphics::draw(){
double P[2];
double Direction;
for (int i = 0; i < numBirds; i )
{
P[0] = flock[i]->Px;
P[1] = flock[i]->Py;
Direction = flock[i]->Dir - 90;
glPushMatrix();
glColor3d(1, 1, 1);
//Operacion para el triangulo
glTranslated(P[0], P[1], 0.0);
glRotated(Direction, 0.0, 0.0, 1.0);
/*
Se mantienen estas proporciones:
Base: 1
Altura: 1.9364916731
Lado (isosceles): 2
*/
glBegin(GL_TRIANGLES); // Inicio del dibujo
glVertex3d(-1.5, 0, 0); // Primer vertice
glVertex3d( 1.5, 0, 0); // Segundo vertice
glVertex3d( 0, 7.9364916731, 0); // Tercer vertice
glEnd(); // Fin del dibujo
// Deshago las operaciones de rotacion y translacion
glRotated(-Direction, 0, 0, 1);
glTranslated(-P[0], -P[1], 0.0);
glPopMatrix();
//cout << "Velocidad pajaro "<< i <<" Graph x: "<<flock[i]->Vx << " Velocidad pajaro Graph Y:"<< flock[i]->Vy<<endl;
//flock[i]->Py
physics.updatePosition(flock, flock[i]);
//cout << "Velocidad update pajaro "<< i <<" Graph x: "<<flock[i]->Vx << " Velocidad pajaro Graph Y:"<< flock[i]->Vy<<endl;
}
}
В этой версии кода треугольники движутся в определенном направлении (x, y), но треугольник не указывает (равнобедренные треугольники могут указывать одной вершиной) в / по направлению (?) к этому направлению.
Комментарии:
1. Не могли бы вы, пожалуйста, указать, что происходит, когда вы пробуете свою версию кода? В чем именно заключается проблема, которую вы не можете решить?
2. Треугольники движутся в определенном направлении, но они не указывают (равнобедренный треугольник может указывать) в этом направлении.