openglpython编程_ubuntu 下python opengl编程(2)

ok,书接上文,

之前的说明了如何在linux环境下搭建python开发opengl环境,并且运行一个示例程序。(很棒,但是是程序自带的一个示例函数,不是我们写的)

现在来自己编写opengl的程序。

首先要对整个这个程序的结构有所了解

glutInit() # 初始化glut工具

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA) #设置展示模式,这个我好像还没见过

glutInitWindowSize(400, 400) #窗体尺寸

glutCreateWindow("test") #创建窗体,参数是窗体titile

glutDisplayFunc(Draw) #设置绘制的回调函数

glutIdleFunc(Draw) #这个,我只能猜测是python的idle相关来

glutMainLoop() #开始运行

这是程序的主题部分,如果各位之前用过glut开发opengl的话,那肯定会很快上手的(你可以跳过这段了),因为api几乎和c++版本的一样。

如果你没用过也没关系,看看后面的注释,基本就是这样,各个平台都大同小异。

程序的主题还是draw函数部分。opengl使用方法和其他平台一样(要不说是跨平台莫),

glClear(GL_COLOR_BUFFER_BIT) #清空缓存,颜色的

glBegin(GL_TRIANGLE_STRIP) #设置图元

# 巴拉巴拉

glEnd() #绘制完毕

glFlush() # 刷新

这里要指出的是图元的类型:

参数含义

GL_POINTS

单个顶点集

GL_LINES

线段

GL_LINE_STRIP

不闭合的连续线段

GL_LINE_LOOP

闭合的线段

GL_POLYGON

多边形

GL_TRAINGLES

独立三角形

GL_TRAINGLE_STRIP

三角形串,线性连续

GL_TRAINGLE_FAN

三角形串,扇状连续

GL_QUADS

独立四边形

GL_QUAD_STRIP

四边形串

关于这个我实在不想赘述,因为多用几次就明白了,在网上找到一张图对于理解这个还是不错的

恩,基本就是这样,最后自己写个很简单的opengl 2d小示例,绘制一个图案出来。

from OpenGL.GL import *

from OpenGL.GLU import *

from OpenGL.GLUT import *

def Draw():

glClear(GL_COLOR_BUFFER_BIT)

# glRotatef(0.5, 0, 1, 0)

# glutWireTeapot(0.5)

# glPolygonMode()

# glLineWidth(9);

# draw the left page

glColor3f(1.0,0.0,1.0)

glBegin(GL_TRIANGLE_STRIP)

glVertex2f(-0.5,0.5)

glVertex2f(0.0,0.5)

glVertex2f(0.0,-0.5)

glVertex2f(-0.5,-0.5)

glVertex2f(-0.5,0.5)

glEnd()

# draw the right page

glColor3f(0.0,1.0,1.0);

glBegin(GL_TRIANGLE_STRIP)

glVertex2f(0.0,0.5)

glVertex2f(0.5,0.5)

glVertex2f(0.5,-0.5)

glVertex2f(0.0,-0.5)

glVertex2f(0.0,0.5)

glEnd()

glFlush()

glutInit()

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)

glutInitWindowSize(400, 400)

glutCreateWindow("test")

glutDisplayFunc(Draw)

glutIdleFunc(Draw)

glutMainLoop()

ok,that is all.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值