以下是一个简单的示例代码,展示了如何使用OpenGL库(PyOpenGL)在Python中创建一个窗口,并绘制一个简单的三角形。
import OpenGL.GL as gl
import OpenGL.GLUT as glut
# 窗口宽度和高度
window_width = 800
window_height = 600
def draw_triangle():
gl.glBegin(gl.GL_TRIANGLES)
gl.glVertex2f(0.0, 0.5)
gl.glVertex2f(-0.5, -0.5)
gl.glVertex2f(0.5, -0.5)
gl.glEnd()
def display():
gl.glClear(gl.GL_COLOR_BUFFER_BIT)
# 设置绘制颜色
gl.glColor3f(1.0, 1.0, 1.0)
# 绘制三角形
draw_triangle()
# 刷新缓冲区,将绘制的结果显示在窗口中
glut.glutSwapBuffers()
def reshape(width, height):
# 设置视口大小
gl.glViewport(0, 0, width, height)
# 设置投影矩阵
gl.glMatrixMode(gl.GL_PROJECTION)
gl.glLoadIdentity()
gl.glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0)
# 设置模型视图矩阵
gl.glMatrixMode(gl.GL_MODELVIEW)
def main():
glut.glutInit()
glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB)
glut.glutInitWindowSize(window_width, window_height)
glut.glutCreateWindow(b"OpenGL Triangle")
# 注册回调函数
glut.glutDisplayFunc(display)
glut.glutReshapeFunc(reshape)
# 设置清空颜色
gl.glClearColor(0.0, 0.0, 0.0, 1.0)
# 进入主循环
glut.glutMainLoop()
if __name__ == '__main__':
main()
上述代码使用了PyOpenGL库来进行OpenGL的绘制操作。在代码中,我们创建了一个窗口,并在窗口中绘制了一个简单的三角形。display
函数用于绘制场景,reshape
函数用于设置视口和投影矩阵。main
函数是程序的入口,初始化OpenGL环境并进入主循环。
请确保已经安装了Python和PyOpenGL库,然后运行上述代码,即可看到一个显示了一个白色三角形的窗口。您可以尝试修改代码,进行更多的绘制操作和交互效果,以便学习和探索OpenGL的功能和特性。