因此,我有一个x和y坐标对的矩阵,矩阵中的每一行代表一条路线,我想将其表示为OpenGL中的GL_LINE_STRIP。事情是我想每次用不同的颜色画线。我以为我的代码可以用,但是OpenGL总是以相同的颜色绘制line_strips。
我认为这可以完成工作,xy是坐标对的矩阵:
static void Redraw(void)
{
...
glClear(GL_COLOR_BUFFER_BIT);
//drawing routes
srand(time(NULL));
for(int i = 0; i < xy.size(); i++)
{
vector<pair<int, int>> route = xy[i];
double r = ((double) rand() / (RAND_MAX));
double g = ((double) rand() / (RAND_MAX));
double b = ((double) rand() / (RAND_MAX));
glColor3f(r,g,b);
glLineWidth(2);
glBegin(GL_LINE_STRIP);
for(int j = 0; j < route.size();j++)
glVertex2d(route[j].first, route[j].second);
glEnd();
}
glFlush();
}
和我的主要人:
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(1080,720);
glutInitWindowPosition(0,0);
glutCreateWindow("h_constante");
gluOrtho2D(0,1000,0,1000);
glutDisplayFunc(Redraw);
glutMainLoop();
return 0;
}
答案 0 :(得分:0)
我将所有节点推入矩阵的第一行,所以我实际上是在绘制一个大的 GL_LINE_STRIP。非常感谢大家的帮助!