Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用控制台窗口中的输入顶点在glut中绘制多边形?_C++_C_Opengl_Polygon_Freeglut - Fatal编程技术网

C++ 如何使用控制台窗口中的输入顶点在glut中绘制多边形?

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

我正在代码块的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();
glutMainLoop();
这样我可以在glut窗口中绘制多边形。

我该怎么做呢?

不幸的是,GLUT的工作方式是,您无法将用户定义的数据与回调关联起来,就像这个显示回调一样

因此,为了访问适当的状态,您必须使用在这些回调范围之外可以访问的一些全局变量


因此,解决问题的一种方法就是在
main
中输入顶点,例如在
display
中访问全局变量(例如,文件范围静态)。为了避免将其变成太大的混乱,您可以使用单个类或结构将数据聚合成单个全局变量(或单例变量或其他任何变量)。

您想问什么?好像你已经把它放下了,你还需要什么?我不确定你是用C还是C++,请指定我想把一些顶点传递给显示函数,这样我就可以用GLUVTEX2F(A,B)函数在GLUT窗口上绘制它。我用的是C++。