Python多媒体编程
使用Python可以进行创建3D图形、播放音乐等多媒体编程。使用PyOpenGL可以创建3D图形。另外使用PyGame可以编写游戏。
使用PyOpenGL绘制3D图形
PyOpenGL模块是对OpenGL的封装,OpenGL提供了不同的函数调用以绘制从简单的图形到复杂的3D图形。使用OpenGL模块可以使用OpenGL中的函数绘制3D图形。
1、安装PyOpenGL
pip install PyOpenGL
具体的针对不同系统的可以到这里http://pyopengl.sourceforge.net/查看安装细节
2、使用OpenGL创建窗口
使用PyOpenGL和使用OpenGL创建程序的过程基本类似,在程序中首先对OpenGL进行初始化,设置相关的参数。在使用OpenGL的程序中首先调用glutInit函数,向其传递命令行参数。然后调用glutInitDisplayMode函数设置显示模式,调用glutCreateWindow函数创建窗口,调用glutDisplayFunc设置场景绘制函数。最后调用自定义的初始函数完成OpenGL的初始化,进入消息循环。代码实例演示如下
# _*_ coding: utf-8 -*-
# version 2.7.13
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
import sys
class OpenGLWidow:
def __init__(self, width=640, height=480, title='PyOpenGL'):
glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
glutInitWindowSize(width, height)
self.window = glutCreateWindow(title)
glutDisplayFunc(self.Draw)
self.InitGL(width, height)
def Draw(self):
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glutSwapBuffers()
def InitGL(self, width, height):
glClearColor(0.0, 0.0, 0.0, 0.0)
glClearDepth(1.0)
glDepthFunc(GL_LESS)
glEnable(GL_DEPTH_TEST)
glShadeModel(GL_SMOOTH)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45.0, float(width) / float(height), 0.1, 100.0)
glMatrixMode(GL_MODELVIEW)
def MainLoop(self):
glutMainLoop()
window = OpenGLWidow()
window.MainLoop()
运行的结果如下
下篇文章,介绍下如何进行绘制文字