OpenGL编程轻松入门之曲面和曲线

OpenGL编程轻松入门之曲面和曲线

ID:41037314

大小:40.50 KB

页数:6页

时间:2019-08-14

OpenGL编程轻松入门之曲面和曲线_第1页
OpenGL编程轻松入门之曲面和曲线_第2页
OpenGL编程轻松入门之曲面和曲线_第3页
OpenGL编程轻松入门之曲面和曲线_第4页
OpenGL编程轻松入门之曲面和曲线_第5页
资源描述:

《OpenGL编程轻松入门之曲面和曲线》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、OpenGL编程轻松入门之曲面和曲线2006-05-1911:13作者:黄燕出处:天极开发责任编辑:方舟前面我们讲了如何绘制平面的图形,这一节我们学习如何绘制曲线和曲面。  例10:绘制一个曲面,如图十二所示。本程序使用二维求值器绘制一个曲面。本例中也有一些特殊效果的操作。#include#include#include#includeGLfloatctrlpoints[5][5][3]={{{-2,0,0},{-1,1,0},{0,0,0},{1,-1,0}

2、,{2,0,0}},{{-2,0,-1},{-1,1,-1},{0,0,-1},{1,-1,-1},{2,0,-1}},{{-2,0,-2},{-1,1,-2},{0,0,-2},{1,-1,-2},{2,0,-2}},{{-2,0,-3},{-1,1,-3},{0,0,-3},{1,-1,-3},{2,0,-3}},{{-2,0,-4},{-1,1,-4},{0,0,-4},{1,-1,-4},{2,0,-4}}};GLfloatmat_ambient[]={0.1,0.1,0.1,1.0};GLfloatmat_diffuse[]={1.

3、0,0.6,0.0,1.0};GLfloatmat_specular[]={1.0,1.0,1.0,1.0};GLfloatlight_ambient[]={0.1,0.1,0.1,1.0};GLfloatlight_diffuse[]={1.0,1.0,1.0,0.0};GLfloatlight_specular[]={1.0,1.0,1.0,0.0};GLfloatlight_position[]={2.0,23.0,-4.0,1.0};voidmyInit(void){ glClearColor(0.0,0.0,0.0,0.0);//设

4、置背景色 /*为光照模型指定材质参数*/ 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(G

5、L_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); /*enabledepthcomparisonsandupdatethedepthbuffer*/ glEnable(GL_DEPTH_TEST); /*设置特殊效果*/ glBlendFun

6、c(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);}voidmyDisplay(void){ glClear(GL_COLOR_BUFFER_BIT

7、GL

8、_DEPTH_BUFFER_BIT); glColor3f(0.0,0.0,0.0); glTranslatef(0.0,-1.0,0.0); glRotatef(50.0,1.0,0.0,0.0); glPushMatrix(); /*绘制曲面*/ glEnable(GL_MAP2_VERTEX_3); glMap2f(GL_MAP2_VERTEX_3,0,1,3,5,0,1,15,5,&ctrlpoints[0][0][0]); glMapGrid2f(10.0,0.0,1.0,10.0,0.0,1.0); glEvalMesh2(GL_

9、FILL,0,10.0,0,10.0); glPopMatrix(); glutSwapBuffers();}voidmyReshape(GLsizeiw,GLsi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。