定义一维求值器:
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]); void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); //target参数指定了控制点表示什么。如表所示,并因此确定了points应该提供多少值 //u1和u2参数表示变量u的变化范围,变量stride是每个存储块之间单精度或双精度浮点数的数量 //order参数的值就是stride+1,它应该与控制点的数量一致 //points参数指向第一个控制点的第一个坐标
glEnable(GL_MAP1_VERTEX_3); //启用求值器
glEvalCoord1f((GLfloat) i/30.0); void glEvalCoord1f (GLfloat u); //参数u是定义域坐标的值
定义均匀分布的一维坐标值:
void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); //定义一个均匀分布的u1到u2的网格,中间有un个阶段
void glEvalMesh1 (GLenum mode, GLint i1, GLint i2); //对所有已启用的求职器应用当前定义的一维网格。 //mode参数可以是GL_POINT、GL_LINE。 //这个函数相当于为从i1到i2的每一步调用glMapGrid1d函数,其中0<i1,i2<n;
《高效学习OpenGL》 之 glMap1f(),glEvalCoord1f(),glMapGrid1d(),glEvalMesh1(),布布扣,bubuko.com
《高效学习OpenGL》 之 glMap1f(),glEvalCoord1f(),glMapGrid1d(),glEvalMesh1()
原文:http://blog.csdn.net/biggbang/article/details/20615917