#c #opengl
#c #opengl
Вопрос:
Я борюсь с переводом треугольников в OpenGL и использованием uC . Каждая птица (треугольник) — это поток. Дело в том, что когда птицы переводят, камера или общее изображение перемещается вверх или вниз.
Код для рисования — это:
void Graphics::draw(){
double AxisX;
double AxisY;
double Direction;
for (int i = 0; i < numBirds; i )
{
AxisX = birds[i]->Px;
AxisY = birds[i]->Py;
Direction = birds[i]->Dir - 90;
glColor3d(1, 1, 1);
//Operacion para el triangulo
glTranslated(AxisX, AxisY, 0.0f);
glRotated(Direction, 0, 0, 1);
/*
Se mantienen estas proporciones:
Base: 1
Altura: 1.9364916731
Lado (isosceles): 2
*/
glBegin(GL_TRIANGLES); // Inicio del dibujo
glVertex3d(-5, 0, 0); // Primer vertice
glVertex3d( 5, 0, 0); // Segundo vertice
glVertex3d( 0, 15, 0); // Tercer vertice
glEnd(); // Fin del dibujo
// Deshago las operaciones de rotacion y translacion
glRotated(-Direction, 0, 0, 1);
glTranslated(-AxisX, -AxisY, 0.0f);
}
}
Вопрос в том, как я могу это исправить? Я часами боролся, ничего не получая.
Комментарии:
1. Вы пробовали нажимать состояния gl в начале, а затем извлекать их по завершении?
2. Что
Every bird (triangle) is a thread.
это вообще значит?3. Натан, я сделал это, и теперь работает, спасибо! И, дерхасс, когда вы работаете с uC , ваш класс представляет собой поток или задачу, аналогичную той, что при использовании pthread, но он объектно-ориентированный. Итак, у меня есть task bird, и каждая созданная птица является потоком.