• OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口


    OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口

    创建一个NURBS对象:

       GLUnurbs* gluNewNurbsRenderer (void);
       //创建一个NURBS对象nobj,并返回一个指向这个新对象的指针

    销毁NURBS对象:

    void gluDeleteNurbsRenderer(GLUnurbs *nobj);

    控制NURBS对象的属性:

       gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0);//控制分格化的顶点简单的进行渲染
       gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);//把表面渲染为多边形
       void gluNurbsProperty (GLUnurbs *nobj, GLenum property, GLfloat value );
       //控制NURBS对象的属性,property指定了属性,他可以是GLU_DISPLAY_MODE或GLU_SAMPLING_TOLERANCE,value表示这个属性应该是什么值

    返回NURBS对象nobj的property属性的当前值:

    		gluGetNurbsProperty(GLUnurbs *nobj, GLenum property, GLfloat* value)
    		//返回NURBS对象nobj的property属性的当前值,返回值放在value数组中

    创建NURBS的曲面或表面:

       gluBeginSurface(theNurb);
       gluNurbsSurface(theNurb, 
                       8, knots, 8, knots,
                       4 * 3, 3, &ctlpoints[0][0][0], 
                       4, 4, GL_MAP2_VERTEX_3);
       gluEndSurface(theNurb);
    
       void gluNurbsSurface(     
    	   GLUnurbs            *nobj, 
    	   GLint               sknot_count, //节点数量
    	   float               *sknot, //节点序列
    	   GLint               tknot_count, //节点数量
    	   GLfloat             *tknot, //节点序列
    	   GLint               s_stride, //每个参数化方向上控制点之间的浮点值的数量
    	   GLint               t_stride, 
    	   GLfloat             *ctlarray, //指向包含了控制点的数组
    	   GLint               sorder, //表面多项式的阶数
    	   GLint               torder, //表面多项式的阶数
    	   GLenum              type);//表示二维求值器类型

    从NURBS分格化对象获取图元:

       gluNurbsCallback(theNurb, GLU_ERROR, 
                        nurbsError);
       void gluNurbsCallback (GLUnurbs *nobj, GLenum which, void (CALLBACK* fn)() );
       //nobj是进行分格化的NURBS对象,which是用于标识回调函数的枚举值,原型如下图

      

    
    
  • 相关阅读:
    linux 自动重启崩溃的进程
    oracle配置出现的问题
    Castle Nvelocity 循环,条件
    asp.net水晶报表初体验
    关于codesmith中文乱码的解决方法
    ref,out
    DIV覆盖DropDownList解决方案(转)
    xp下设置文件的权限(转)
    关于Godaddy空间存放DotNet网站出现500 Internal server error 错误的总结
    为什么设计师应该学习编写代码
  • 原文地址:https://www.cnblogs.com/icmzn/p/5088979.html
Copyright © 2020-2023  润新知