为什么我在使用此代码时收到错误'setPixel not defined'?
{{1}}
答案 0 :(得分:2)
因为在OpenGL或GLUT中没有setPixel
方法,并且从我的代码中可以看出,你也没有定义。 OpenGL处理渲染基元,如点,线,三角形等,但不直接在屏幕上设置单个像素。由于目前还不清楚你想要达到什么建议:
glBegin(GL_LINES), etc.
之类的相应方法(虽然它们已被弃用,不应再使用。)或glDrawArrays(GL_LINES, ...
。答案 1 :(得分:2)
因为您尚未在任何地方定义setPixel
。这不是一个OpenGL调用。你需要自己编写它,它应该在缓冲区上设置像素(如果你正在使用双缓冲),然后将其用作glDrawPixels()
的参数,或者使用{{1调用显示缓冲区}}。您可以看到两种方法here和here的示例。
此外,您的glVertex2i(x,y)
功能已损坏。在OpenGL中,您可以调用LineSegment
来指定一个尽可能快地称为的函数来呈现显示。但是,在此函数中,您调用glutDisplayFunc
来提示用户输入数据 - 这已被破坏。您应该在开始时提示它们一次,然后将该数据传递给函数(一旦调用scanf()
,它将尽可能频繁地运行)。