C++ 如何使用控制台窗口中的输入顶点在glut中绘制多边形?
我正在代码块的Glut项目中实现2D和3D转换。但我从控制台窗口中的键盘获取输入顶点。我想将这些顶点传递给glVertex2f(a,b),它位于显示函数中C++ 如何使用控制台窗口中的输入顶点在glut中绘制多边形?,c++,c,opengl,polygon,freeglut,C++,C,Opengl,Polygon,Freeglut,我正在代码块的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]); glV
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();
glutMainLoop();
这样我可以在glut窗口中绘制多边形。
我该怎么做呢?不幸的是,GLUT的工作方式是,您无法将用户定义的数据与回调关联起来,就像这个显示回调一样
因此,为了访问适当的状态,您必须使用在这些回调范围之外可以访问的一些全局变量
因此,解决问题的一种方法就是在main
中输入顶点,例如在display
中访问全局变量(例如,文件范围静态)。为了避免将其变成太大的混乱,您可以使用单个类或结构将数据聚合成单个全局变量(或单例变量或其他任何变量)。您想问什么?好像你已经把它放下了,你还需要什么?我不确定你是用C还是C++,请指定我想把一些顶点传递给显示函数,这样我就可以用GLUVTEX2F(A,B)函数在GLUT窗口上绘制它。我用的是C++。