我正在 Glut 项目中的代码块上实现 2D 和 3D 转换。但我正在控制台窗口中的键盘上获取输入顶点。我想将这些顶点传递给位于显示函数内部的 glVertex2f(a,b) 。
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(34,0,7.2);
glColor3f(0,0,7.2);
glBegin(GL_POLYGON);
glVertex2f(result1[0],result2[0]);
glVertex2f(result1[0],result2[1]);
// some more glvertex2f(,)
glEnd();
}
display()
函数在 main 中被调用为 glutDisplayFunc(display);
glutMainLoop();
这样我就可以在过剩窗口中绘制多边形。
我该怎么做?
最佳答案
不幸的是,GLUT 的工作方式是您无法关联用户定义的数据来传递回调,就像这个显示回调一样。
因此,您必须使用一些可在这些回调范围之外访问的全局变量,以便访问适当的状态。
因此,解决问题的一种方法就是在 main
中输入顶点,例如,输入到您在 display
中访问的全局变量(例如文件范围静态数据)。为了避免变得过于困惑,您可以使用单个类或结构将数据聚合到单个全局变量(或单例或其他变量)中。
关于c++ - 如何使用控制台窗口中的输入顶点在 glut 中绘制多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33987226/