在上一篇文章中,我们提到了如何配置OpenGl,也创建了一个空窗口,这一次实现画图功能
1、背景颜色
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys
# 定义常量
title = "minecraft3D"#标题
width = 640 #宽
height = 640 #高
def Draw():
glClear(GL_COLOR_BUFFER_BIT)#清除屏幕
glutSwapBuffers()#刷新屏幕
#初始化窗口
glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
glutInitWindowSize(width, height)
window = glutCreateWindow(title)
glutDisplayFunc(Draw)
glutIdleFunc(Draw)
glutMainLoop()
由于窗口是双缓冲,所以不应该使用glFlush,要使用glutSwapBuffers
该程序实现了画图,窗口应该是这样的:
背景颜色可以自定义,用到glClearColor这个函数,代码:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys
# 定义常量
title = "minecraft3D"#标题
width = 640 #宽
height = 640 #高
def InitGL():
glClearColor(0.49411764705882352941176470588235,
0.67058823529411764705882352941176,
1.00000000000000000000000000000000,
0.00000000000000000000000000000000)
def Draw():
glClear(GL_COLOR_BUFFER_BIT)#清除屏幕
glutSwapBuffers()#刷新屏幕
#初始化窗口
glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
glutInitWindowSize(width, height)
window = glutCreateWindow(title)
InitGL()
glutDisplayFunc(Draw)
glutIdleFunc(Draw)
glutMainLoop()
有内味了
2、长方形和多边形
先上代码:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import random
import sys
# 定义常量
title = "minecraft3D"#标题
width =