如何使用Legacy OpenGL绘制不同的彩色线条
How to draw different colored line strips with Legacy OpenGL?
因此,我有一个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;
}
我将所有节点推入矩阵中的第一行中,因此我实际上是在绘制一个大gl_line_strip。非常感谢所有帮助!
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++:TypeDef使用元组
- 使用std::multimap迭代器创建std::list
- 从不同线程使用int64的不同字节安全吗
- 使用 OpenCV 和 C++将 16 位灰度图像更改为彩色图像
- 如何使用Legacy OpenGL绘制不同的彩色线条
- 使用 VBO 绘制不同宽度的彩色线条
- 使用 LLVM 的 libc++ 时,__1 符号从何而来?
- 在std::cout之后使用std::cin时,换行符从何而来
- 使用彩色直方图使用 OpenCV 训练 SVM
- 为什么以及在何处在C++中使用引用和指针
- 如何在Windows上使用代码块在C++中输出彩色文本
- Opencv如何使用MatIterator迭代具有浮动RGB值的彩色图像
- 在Windows中使用C++进行彩色控制台输出
- 使用 Image.ptr<double>(0);在 OpenCV 中使用彩色图像
- 如何使用glColor4f()和glDrawArrays(GL_LINES, 0,2)绘制彩色线?
- 在visual studio 2010中使用c++将彩色图像转换为灰度
- 如何使用ANSI转义码在C和c++中输出彩色文本
- 基例如何影响使用递归函数的哪些行
- 我应该如何去实现算法与黑白和彩色图像使用