我是靠谱客的博主 无限墨镜,这篇文章主要介绍OpenGL入门学习三——绘制旋转的正方体,现在分享给大家,希望可以做个参考。

from 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入门学习三——绘制旋转内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(121)

评论列表共有 0 条评论

立即
投稿
返回
顶部