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()
再发现
明白了!非常感谢你的支持!非常感谢你