《高效学习OpenGL》 之 glMap1f(),glEvalCoord1f(),glMapGrid1d(),glEvalMesh1()

来源:互联网 发布:10000以内的质数编程 编辑:程序博客网 时间:2024/06/05 22:34

定义一维求值器:

   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;


0 0