Python 运行pyOpenGL时发生NameError
我感兴趣的是建立一个环境,用pyOpenGL编写粒子模拟器。我已经安装了pyOpenGL。 这是确保opengl正常工作的测试代码Python 运行pyOpenGL时发生NameError,python,python-3.x,windows-8.1,nameerror,pyopengl,Python,Python 3.x,Windows 8.1,Nameerror,Pyopengl,我感兴趣的是建立一个环境,用pyOpenGL编写粒子模拟器。我已经安装了pyOpenGL。 这是确保opengl正常工作的测试代码 from OpenGL import * from OpenGL.GLUT import * from OpenGL.GLU import * window = 0 width, height = 500,400 def draw(): glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT)
from OpenGL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
window = 0
width, height = 500,400
def draw():
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glutDwapBuffers()
#initialization
glutInit()
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
glutInitWindowSize(width,height)
glutInitWindowPosition(0,0)
window = glutCreateWindow(b"noobtute")
glutDisplayFunc(draw)
glutIdleFunc(draw)
glutMainLoop()
但是,当我从命令运行脚本时,出现以下错误:
NameError: name 'glClear' is not defined
GLUT Display callback <function draw at 0x0000000002F8CB70> with (),{} failed:
returning None name 'glClear' is not defined
name错误:未定义名称“glClear”
带(),{}的GLUT显示回调失败:
未定义返回无名称“glClear”
我尝试重新安装pyOpengl,但没有成功
我正在Windows8.1上运行Python 3.4
如果你认为更多的信息会有帮助,那就问吧。
谢谢你的改变
from OpenGL import *
到
但是,我倾向于使用这种格式:
import OpenGL.GL as GL
import OpenGL.GLU as GLU
import OpenGL.GLUT as GLUT
window = 0
width, height = 500,400
def draw():
GL.glClear(GL.GL_COLOR_BUFFER_BIT |GL.GL_DEPTH_BUFFER_BIT)
GL.glLoadIdentity()
GLUT.glutSwapBuffers()
#initialization
GLUT.glutInit()
GLUT.glutInitDisplayMode(GLUT.GLUT_RGBA | GLUT.GLUT_DOUBLE | GLUT.GLUT_ALPHA |
GLUT.GLUT_DEPTH)
GLUT.glutInitWindowSize(width,height)
GLUT.glutInitWindowPosition(0,0)
window = GLUT.glutCreateWindow(b"noobtute")
GLUT.glutDisplayFunc(draw)
GLUT.glutIdleFunc(draw)
GLUT.glutMainLoop()
虽然没有那么紧凑,但它可以帮助我了解谁在做什么 变化
from OpenGL import *
到
但是,我倾向于使用这种格式:
import OpenGL.GL as GL
import OpenGL.GLU as GLU
import OpenGL.GLUT as GLUT
window = 0
width, height = 500,400
def draw():
GL.glClear(GL.GL_COLOR_BUFFER_BIT |GL.GL_DEPTH_BUFFER_BIT)
GL.glLoadIdentity()
GLUT.glutSwapBuffers()
#initialization
GLUT.glutInit()
GLUT.glutInitDisplayMode(GLUT.GLUT_RGBA | GLUT.GLUT_DOUBLE | GLUT.GLUT_ALPHA |
GLUT.GLUT_DEPTH)
GLUT.glutInitWindowSize(width,height)
GLUT.glutInitWindowPosition(0,0)
window = GLUT.glutCreateWindow(b"noobtute")
GLUT.glutDisplayFunc(draw)
GLUT.glutIdleFunc(draw)
GLUT.glutMainLoop()
虽然没有那么紧凑,但它可以帮助我了解谁在做什么 所以你的解决方案很好,非常感谢。我理解为什么代码更容易理解和更简洁,但我仍然不明白为什么我最初发布的代码不起作用。所以你的解决方案工作得很好,非常感谢。我理解为什么代码更容易理解和更清晰,但我仍然不明白为什么我最初发布的代码不起作用。