上一节讲了一般的曲线与曲面的绘制,本节讲NURBS 曲线和曲面的绘制
例 11:此例绘制两个相同形状的NURBS 曲面,不同之处是一个为线框式,一个是由实多边形组成
运行后可以看到其中的区别,如图十三所示
#include #include GLUnurbsObj *theNurb1; GLUnurbsObj *theNurb2; GLfloat ctrlpoints[5][5][3] = {{{-3,0
5,0},{-1,1
5,0},{-2,2,0},{1,-1,0},{-5,0,0}}, {{-3,0
5,-1},{-1,1
5,-1},{-2,2,-1},{1,-1,-1},{-5,0,-1}}, {{-3,0
5,-2},{-1,1
5,-2},{-2,2,-2},{1,-1,-2},{-5,0,-2}}, {{-3,0
5,-3},{-1,1
5,-3},{-2,2,-3},{1,-1,-3},{-5,0,-3}}, {{-3,0
5,-4},{-1,1
5,-4},{-2,2,-4},{1,-1,-4},{-5,0,-4}}};// 控制点 GLfloat mat_diffuse[] = {1
0}; GLfloat mat_specular[] = {1
0}; GLfloat mat_shininess[] = {100
0}; GLfloat light_position[] = {0
0}; void myInit(void) { glClearColor(1
0);// 设置背景色 /*为光照模型指定材质参数*/ glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse); glMaterialfv(GL_FRONT