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

标签 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]);
    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/

相关文章:

c++ - 从 C++ 中的数组中删除对象?

c++ - 如何检查 std::thread 是否有效

c - 数组指针与普通指针的区别

c - 如何去除从文件中读取的垃圾值?

xcode - OpenGL 中的精度/单位

opengl - 使用glew和glfw为opengl设置cmake标志

c++ - 访问链表时出现Segmentation fault 11

c++ - 有效地使用带数组的 KMP 来计算词频计数

c - fread 是否对大文件失败?

opengl - 将 Z 轴与矢量对齐的最简单方法是什么?