位置: 编程技术 - 正文
推荐整理分享Begin OpenGL with Python-1st Day,draw a simple sample.,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
某个老板忽然有一天想到要画3D图,于是作者遭殃了……
OK,首先需要Python和pyopengl……
然后需要一块支持OpenGL的显卡,我不是开玩笑,我第一个程序夭折就是因为显卡不支持。
《OpenGL编程指南》这本书很得参考。
初始化glut设置显示模式创建窗口要做的事情主循环首先画一个点:
drawFunc里面显示的是画图的函数。
from OpenGL.GL import *from OpenGL.GLUT import *
def drawFunc():
glBegin(GL_POINTS)
glVertex2d(0,0)
glEnd()
glFlush()
glutInit()glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA)glutCreateWindow("second")glutDisplayFunc(drawFunc)glClearColor(0.0,0.0,0.0,1.0)glutMainLoop()
以下代码用手工画了球上的所有点:
两个函数drawFunc是用来画图get_param是用来抓行为并进行重绘的。我知道用全局变量不大好。这只是试验品。事实上代码还没完成,但是我要睡觉了。嘿嘿。
import mathfrom OpenGL.GL import *from OpenGL.GLUT import *position=[]def init(): glClearColor(0.0,0.0,0.0,1.0)def drawFunc(theta_ref=0,phi_ref=0): number=0 glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_POINTS) r=[1]* for theta in [x/*math.pi-theta_ref/*math.pi for x in range(0,,)]: z=r[number]*math.cos(theta) for phi in [x/*math.pi-phi_ref/*math.pi for x in range(0,,)]: x=r[number]*math.sin(theta)*math.cos(phi) y=r[number]*math.sin(theta)*math.sin(phi) glVertex3f(x,y,z) number=1 glEnd() glFlush()def get_param(*arg,**args): print(globals()['position']) if len(arg)==4: if arg[1]==0 and globals()['position']==[]: globals()['position']=[arg[2],arg[3],arg[2],arg[3]] else: globals()['position'][2:]=[arg[2],arg[3]] if len(arg)==2: globals()['position'][0]=globals()['position'][0]arg[0]-globals()['position'][2] globals()['position'][1]=globals()['position'][1]arg[1]-globals()['position'][3] globals()['position'][2]=arg[0] globals()['position'][3]=arg[1] drawFunc(globals()['position'][0],globals()['position'][1])glutInit()glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA)glutInitWindowSize(,)glutCreateWindow("second")glutMouseFunc(get_param)glutMotionFunc(get_param)glutDisplayFunc(drawFunc)init()glutMainLoop()
OpenGL矩阵API的使用方法 在OpenGL1.x中包含了一系列的矩阵操作函数,下面我对这些函数的使用方式做个总结。在介绍这些函数之前,我先引入一些数学符号以便更简明的表达我
opengl shader 学习 随笔四 一个典型的shader程序,看完这个基本shader的流程就没有问题了。constchar*vShader={//Vertexshader#versioncorenuniformUniforms{vec3translation;floatscale;vec4rotation;boolenable
OpenGL基础图形编程 转载:
标签: Begin OpenGL with Python-1st Day,draw a simple sample.
本文链接地址:https://www.jiuchutong.com/biancheng/373175.html 转载请保留说明!友情链接: 武汉网站建设