Python 如何使用OpenGL绘制线立方体?

Python 如何使用OpenGL绘制线立方体?,python,opengl,glut,pyopengl,opengl-compat,Python,Opengl,Glut,Pyopengl,Opengl Compat,我想画一个有线条的立方体 这是我的密码。它给了我一个白色的框架,里面什么都没有。什么也没发生。我做错了什么?这是调用函数的顺序有问题还是投影有问题 def myInit(): glClearColor(0.0, 0.0, 0.0, 1.0) glColor3f(0.2, 0.5, 0.4) gluPerspective(45, 1.33, 0.1, 50.0) vertices= ( (100, -100, -100), (100, 100, -1

我想画一个有线条的立方体

这是我的密码。它给了我一个白色的框架,里面什么都没有。什么也没发生。我做错了什么?这是调用函数的顺序有问题还是投影有问题


def myInit():
    glClearColor(0.0, 0.0, 0.0, 1.0) 
    glColor3f(0.2, 0.5, 0.4)
    gluPerspective(45, 1.33, 0.1, 50.0)


vertices= (
    (100, -100, -100),
    (100, 100, -100),
    (-100, 100, -100),
    (-100, -100, -100),
    (100, -100, 100),
    (100, 100, 100),
    (-100, -100, 100),
    (-100, 100, 100)
    )

edges = (
    (0,1),
    (0,3),
    (0,4),
    (2,1),
    (2,3),
    (2,7),
    (6,3),
    (6,4),
    (6,7),
    (5,1),
    (5,4),
    (5,7)
    )


def Display():
    glBegin(GL_LINES)
    for edge in edges:
        for vertex in edge:
            glVertex3fv(vertices[vertex])
    glEnd()

glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)   
glutInitWindowSize(800, 600)  
myInit()
glutDisplayFunc(Display) 
glutMainLoop()


将剪裁不在中的所有几何图形。多维数据集的大小为200x200x200。您必须创建一个足够大的视锥

例如,设置远平面为1000.0的透视投影矩阵。投影矩阵旨在设置为当前投影矩阵(
GL\u projection
)。见:

glMatrixMode(GL_投影)
glLoadIdentity()
透视图(45,1.33,0.11000.0)
翻译([`glTranslate`](https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glTranslate.xml))模型沿负z轴移动,位于近平面(0.1)和远平面(0.1)之间。模型或视图矩阵必须设置为当前模型视图矩阵(`GL\U MODELVIEW`):
```派克
glMatrixMode(GLU模型视图)
glLoadIdentity()
glTranslate(0,0,-500)
通过以下方式清除每帧中的显示:

def Display():
glClear(GL_颜色_缓冲区_位| GL_深度_缓冲区_位)
# [...]
通过
glutSwapBuffers
交换当前双缓冲窗口的缓冲区,并通过调用

def Display():
# [...]
glutSwapBuffers()
再发现
另见

请参见示例:

def init():
glClearColor(0.0,0.0,0.0,1.0)
glMatrixMode(GL_投影)
glLoadIdentity()
透视图(45,1.33,0.11000.0)
glMatrixMode(GLU模型视图)
glLoadIdentity()
glTranslate(0,0,-500)
def Display():
glClear(GL_颜色_缓冲区_位| GL_深度_缓冲区_位)
glColor3f(0.2,0.5,0.4)
glBegin(GLU线)
对于边中的边:
对于边中的顶点:
glVertex3fv(顶点[顶点])
格伦德()
glutSwapBuffers()
再发现

剪裁不在中的所有几何图形。多维数据集的大小为200x200x200。您必须创建一个足够大的视锥

例如,设置远平面为1000.0的透视投影矩阵。投影矩阵旨在设置为当前投影矩阵(
GL\u projection
)。见:

glMatrixMode(GL_投影)
glLoadIdentity()
透视图(45,1.33,0.11000.0)
翻译([`glTranslate`](https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glTranslate.xml))模型沿负z轴移动,位于近平面(0.1)和远平面(0.1)之间。模型或视图矩阵必须设置为当前模型视图矩阵(`GL\U MODELVIEW`):
```派克
glMatrixMode(GLU模型视图)
glLoadIdentity()
glTranslate(0,0,-500)
通过以下方式清除每帧中的显示:

def Display():
glClear(GL_颜色_缓冲区_位| GL_深度_缓冲区_位)
# [...]
通过
glutSwapBuffers
交换当前双缓冲窗口的缓冲区,并通过调用

def Display():
# [...]
glutSwapBuffers()
再发现
另见

请参见示例:

def init():
glClearColor(0.0,0.0,0.0,1.0)
glMatrixMode(GL_投影)
glLoadIdentity()
透视图(45,1.33,0.11000.0)
glMatrixMode(GLU模型视图)
glLoadIdentity()
glTranslate(0,0,-500)
def Display():
glClear(GL_颜色_缓冲区_位| GL_深度_缓冲区_位)
glColor3f(0.2,0.5,0.4)
glBegin(GLU线)
对于边中的边:
对于边中的顶点:
glVertex3fv(顶点[顶点])
格伦德()
glutSwapBuffers()
再发现

明白了!非常感谢你的支持!非常感谢你