介绍
这篇文章给大家分享的是有关使用python中opengl的案例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
<强> 强>
<强> 强>
<强> 强>
pip install PyOpenGL PyOpenGL_accelerate
<强> 强> <强> 强> <强> 强> <强> 强>
<强> 强>
# - - -导出模块- - - - - - import pygame 得到pygame.locals import * 得到OpenGL.GL import * 得到OpenGL.GLU import * , # - - -初始化pygame和定义窗口大小- - - - - - pygame.init () # OPENGL | DOUBLEBUF=DOUBLEBUF | OPENGL # DOUBLEBUF:双缓冲模式(推荐和,HWSURFACE 或,OPENGL 一起使用) #创建一个,OPENGL 渲染的显示 pygame.display.set_mode ((640480), OPENGL | DOUBLEBUF) , # - - -元组定义- - - - - - #定义正方体的xyz坐标点 CUBE_POINTS =, ((0.5, -0.5, -0.5),, (0.5, 0.5, -0.5), (-0.5, 0.5, -0.5),, (-0.5, -0.5, -0.5), (0.5, -0.5, 0.5),, (0.5, 0.5, 0.5), (-0.5, -0.5, 0.5),, (-0.5, 0.5, 0.5)) #定义RGB颜色 CUBE_COLORS =, ((1, 0, 0),, (1,, 1,, 0),, (0, 1, 0),, (0, 0, 0), (1, 0, 1),, (1, 1, 1),, (0, 0, 1),, (0, 1, 1)) #,定义面,四个点构成一个面 CUBE_QUAD_VERTS =,((0, 1,, 2,, 3),,(3,, 2,,,, 6),,(6日,7日,5日,4),(4,,5,,1,,0),,(1,5,7,,2),,(4,0,,3,6)) #,定义线,两个点构成一个线 CUBE_EDGES =, ((0, 1),, (0, 3),, (0, 4), (2, 1), (2、3), (7), (6,3), (6, 4), (6、7), (5、1),, (5 4), (5、7)) , # - - -定义画立方体函数- - - - - - def drawcube (): ,,,#,“绘制正方体“,邮政和列表法 ,,,allpoints =,列表(zip (CUBE_COLORS CUBE_POINTS也)) ,,,, ,,,#画面积- - -开始——结束- - - - - - ,,,glBegin (GL_QUADS) ,,,for face 拷贝CUBE_QUAD_VERTS: ,,,,,,,for vert 拷贝的脸: ,,,,,,,,,,,,,pos color =, allpoints(绿色) ,,,,,,,,,,,#在第2个下面 ,,,,,,,,,,,glColor3fv(颜色) ,,,,,,,,,,,glVertex3fv (pos) ,,,#与第1个对齐 ,,,glEnd () , ,,,#边线颜色黑色 ,,,glColor3f (0, 0, 0) , ,,,#,绘制线- - - - - -开始——结束- - - - - - ,,,glBegin (GL_LINES) ,,,for line 拷贝CUBE_EDGES: ,,,,,,,for vert 拷贝: ,,,,,,,,,,,,,pos color =, allpoints(绿色) ,,,,,,,,,,,glVertex3fv (pos) ,,,glEnd () , # - - -主函数- - - - - - def main (): ,,,glEnable (GL_DEPTH_TEST) ,,,#初始化,摄像头 ,,,glMatrixMode (GL_PROJECTION) ,,,gluPerspective (45.0,640/480.0, 0.1,100.0) ,,,glTranslatef (0.0, 0.0, -3.0) ,,,glRotatef(25岁,,1,,0,0) ,,,#启动循环- - - - - - ,,,while 正确的: ,,,,,,,#事件检测 ,,,,,,,event =, pygame.event.poll () ,,,,,,,#定义退出机制,在pygame的而循环中,这一步必备设置 ,,,,,,,if event.type ==, QUIT 或(event.type ==, KEYDOWN 以及event.key ==, K_ESCAPE): ,,,,,,,,,,,休息 ,,,,,,,#清除屏幕 ,,,,,,,glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ,,,,,,,#摄像机旋转 ,,,,,,,glRotatef (1, 0, 1, 0) ,,,,,,,drawcube () ,,,,,,,#刷新画面 ,,,,,,,pygame.display.flip () , if __name__ ==, & # 39; __main__ # 39;: main ()
感谢各位的阅读!关于使用python中opengl的案例就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!