PyOpenGL做曲面
来源:互联网 发布:golang 2.0教程 编辑:程序博客网 时间:2024/05/21 10:06
#encoding=utf8from OpenGL.GL import * from OpenGL.GLUT import * a=0ctrlPoints=[]ctrlPoints= [ [[-0.5,0.5,0],[0.5,0.5,0]], [[-0.5,0,0.5],[0.5,0,0.5]], [[-0.25,-0.5,0.25],[0.25,-0.5,0.25]] ]ctrlPoints1= [ [[-0.5,0.5,0],[0.5,0.5,0]], [[-0.5,0,0],[0.5,0,0]], [[-0.25,-0.5,0],[0.25,-0.5,0]] ]ctrlPoints2= [ [[-0.5,0.5,0],[-0.5,0.5,0]], [[-0.5,0,0],[-0.5,0,0.5]], [[-0.25,-0.5,0],[-0.25,-0.5,0.25]] ]ctrlPoints3= [ [[0.5,0.5,0],[0.5,0.5,0]], [[0.5,0,0],[0.5,0,0.5]], [[0.25,-0.5,0],[0.25,-0.5,0.25]] ]ctrlPoints4= [ [[-0.25,-0.5,0.25],[-0.25,-0.5,0]], [[0,-0.5,0.25],[0,-0.5,0]], [[0.25,-0.5,0.25],[0.25,-0.5,0]] ]xaxis=0.0yaxis=0.0zaxis=0.0def keyboard(key, w, h): global xaxis,yaxis,zaxis if (key=='x'): glRotatef(10, 1, 0, 0) if (key=='y'): glRotatef(10, 0, 1, 0) if (key=='z'): glRotatef(10, 0, 0, 1)def RenderScene(): glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT) glColor3f(0.0, 0.0, 0.0) glPushMatrix() glEnable(GL_MAP2_VERTEX_3) glMap2f(GL_MAP2_VERTEX_3, 0, 10, 0, 10, ctrlPoints) glMapGrid2f(10, 0.0, 10.0, 10, 0.0, 10.0) glEvalMesh2(GL_FILL, 0, 10, 0, 10) glEnable(GL_MAP2_VERTEX_3) glMap2f(GL_MAP2_VERTEX_3, 0, 10, 0, 10, ctrlPoints1) glMapGrid2f(10, 0.0, 10.0, 10, 0.0, 10.0) glEvalMesh2(GL_FILL, 0, 10, 0, 10) glEnable(GL_MAP2_VERTEX_3) glMap2f(GL_MAP2_VERTEX_3, 0, 10, 0, 10, ctrlPoints2) glMapGrid2f(10, 0.0, 10.0, 10, 0.0, 10.0) glEvalMesh2(GL_FILL, 0, 10, 0, 10) glEnable(GL_MAP2_VERTEX_3) glMap2f(GL_MAP2_VERTEX_3, 0, 10, 0, 10, ctrlPoints3) glMapGrid2f(10, 0.0, 10.0, 10, 0.0, 10.0) glEvalMesh2(GL_FILL, 0, 10, 0, 10) glEnable(GL_MAP2_VERTEX_3) glMap2f(GL_MAP2_VERTEX_3, 0, 10, 0, 10, ctrlPoints4) glMapGrid2f(10, 0.0, 10.0, 10, 0.0, 10.0) glEvalMesh2(GL_FILL, 0, 10, 0, 10) glFlush() glPopMatrix() glutSwapBuffers()glutInit()glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE)glutInitWindowPosition(100, 100)glutInitWindowSize(400, 400)glutCreateWindow("HiddenStrawberry")mat_ambient= [0.5,0.0,1.0,0.5]mat_diffuse= [1.0,0.6,1.0,1.0]mat_specular= [1.0,1.0,1.0,1.0]light_ambient= [0.1,0.1,0.1,1.0]light_diffuse= [1.0,1.0,1.0,0.0]light_specular= [0.5,1.0,1.0,0.0]light_position= [-2.0,-5.0,-5.0,1.0]glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient)glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse)glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular)glMaterialf(GL_FRONT,GL_SHININESS,60.0)glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient)glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse)glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular)glLightfv(GL_LIGHT0,GL_POSITION,light_position)glEnable(GL_LIGHTING)glEnable(GL_LIGHT0)glEnable(GL_DEPTH_TEST)glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE)glEnable(GL_BLEND)glEnable(GL_AUTO_NORMAL)glEnable(GL_NORMALIZE)glFrontFace(GL_CW)glShadeModel(GL_SMOOTH)glEnable(GL_LINE_SMOOTH)glutDisplayFunc(RenderScene)glutIdleFunc(RenderScene)glutKeyboardFunc(keyboard)glutMainLoop()
0 0
- PyOpenGL做曲面
- PyOpenGL
- PyOpenGL网络游戏应用
- PyOpenGl 1 -- 环境安装
- pyOpenGL实例讲解
- pyopengl glutInit error
- ubuntu 下 安装 PyOpenGL
- PyOpenGL 资料汇总
- PyOpenGL-安装与测试
- 基于tetgen对曲面分隔的box区域做限定四面体剖分
- [PyOpenGL]一个简单的矩形
- PyOpenGL选择(selection)的例子
- Python环境下安装PyOpenGL
- Window下安装配置PyOpenGL
- OpenGL曲面
- 曲面分类
- 曲面分类
- 曲面等值线
- Winsocket编程,事件选择模型+mysql简易聊天室,含登录同步离线消息
- Tomcat安装及配置
- 破解MyEclipse2016-ci-7
- MongoDB的安全与集群
- 架构设计九之策略模式、迭代器模式
- PyOpenGL做曲面
- Highly Available (Mirrored) Queues
- Android之Activity(一)
- 某直播App问题分析
- Markdown首行缩进
- Sendmessage和Postmessage
- 某直播App问题分析
- MySQL端口
- C语言第二课 数字的运算