复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * rotate = 0 times = 0 vertex_list =[[-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]] index_list = [[0, 1],[2, 3],[4, 5],[6, 7], [0, 2],[1, 3],[4, 6],[5, 7], [0, 4],[1, 5],[7, 3],[2, 6]] def drawCube(): glBegin(GL_LINES) for i in range(12): for j in range(2): x,y,z = vertex_list[index_list[i][j]] glVertex3f(x,y,z) glEnd() def renderScene(): global times,rotate glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glMatrixMode(GL_MODELVIEW) glLoadIdentity() # glPushMatrix() #调用glPushMatrix其实就是把当前状态做一个副本放入堆栈之中。 times += 1 if times > 100: times = 0 if times%100 == 0: rotate += 0.3 glRotate(rotate,0,1,0) glRotate(rotate,1,0,0) glColor3f(0,0,1) drawCube() # glPopMatrix() #从堆栈中恢复之前的状态 glutSwapBuffers() if __name__ == '__main__': glutInit() glutInitDisplayMode(GLUT_DEPTH|GLUT_DOUBLE|GLUT_RGBA) glutInitWindowPosition(100,100) glutInitWindowSize(500,500) glutCreateWindow('GLDEMO') glutDisplayFunc(renderScene) #自动调用display函数重绘窗口 glutIdleFunc(renderScene) #渲染函数产生动画 glutMainLoop()
参考:https://www.2cto.com/kf/201604/497375.html
最后
以上就是无限墨镜最近收集整理的关于OpenGL入门学习三——绘制旋转的正方体的全部内容,更多相关OpenGL入门学习三——绘制旋转内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复