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是用于标识回调函数的枚举值,原型如下图
  
OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口的更多相关文章
- OpenGl中的Nurbs B样条曲面绘制
		
NURBS 贝塞尔曲线的缺点是当我们增加很多控制点的时候,曲线变得不可控,其连续性会变差差.如果控制点很多(高阶曲线),当我们调整一个控制点的位置,对 整个曲线的影响是很大的.要获得更高级的控制,可以 ...
 - openGL中的gl,glu,glut
		
OpenGL函数库相关的API有核心库(gl).实用库(glu).辅助库(aux).实用工具库(glut).窗口库(glx.agl.wgl)和扩展函数库等.gl是核心,glu是对gl的部分封装.glx ...
 - CSharpGL(26)在opengl中实现控件布局/渲染文字
		
CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( ...
 - OpenGL中glFrustum()和gluPerspective()的相互转换
		
OpenGL中在窗口的大小发生变化的时候会触发resize()函数,这里会传入一个新的宽和高,在resize()函数中我们会设置投影矩阵,在可以使用OpenGL基础函数glFrustum()函数和gl ...
 - OPenGL中的缓冲区对象
		
引自:http://blog.csdn.net/mzyang272/article/details/7655464 在许多OpenGL操作中,我们都向OpenGL发送一大块数据,例如向它传递需要处理的 ...
 - OpenGL中摄像机矩阵的计算原理
		
熟悉OpenGL|ES的朋友,可能会经常设置摄像机的view矩阵,iOS中相对较好,已经封装了方向,只需要设置摄像机位置,目标点位置以及UP向量即可.下面先介绍下摄像机view矩阵的计算原理.此处假设 ...
 - OpenGL中坐标系的理解(一)
		
在OpenGL中,存在着至少存在着三种矩阵,对应着函数glMatrixMode()的三个参数:GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE. 以下主要描述GL_MODEL ...
 - CSharpGL(6)在OpenGL中绘制UI元素
		
CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...
 - Opengl中矩阵和perspective/ortho的相互转换
		
Opengl中矩阵和perspective/ortho的相互转换 定义矩阵 Opengl变换需要用四维矩阵.我们来定义这样的矩阵. +BIT祝威+悄悄在此留下版了个权的信息说: 四维向量 首先,我们定 ...
 
随机推荐
- vs2015 去除 git 源代码 绑定
			
第一次碰到这个问题,想将源代码签入TFS管理.添加到源码管理后,默认添加到Git源码管理. 研究过后,发现: 1)删除框内文件 2)Vs2015->工具->选项->源代码管理-> ...
 - (转)powerdesigner 生成sql脚本使用的设置
			
本文转载自:http://blog.163.com/lizhihaoo@126/blog/static/103121661201036171115/ 1. 生成sql脚本的时候,提示"con ...
 - 马士兵Spring-hibernate整合
			
spring整合hibernate: 1.sessionFactory只需要一个就可以了,单例,适合spring管理: 2.HIbernate中的SessionFactory是接口:spring中实现 ...
 - Samba服务创建共享文件系统
			
Linux 系统中的Samba Linux系统中的Samba服务器又提供了另外一种技术来弥补这种安全性的不足的技术,那就是采用账户映射方式为Samba服务器提供虚拟账户(不与Linux系统中的用户账户 ...
 - android studio 3.0.1使用笔记(二)
			
发布前如何生成正式签名的APK? 一,查看APK签名方法:??Preferences->Android->Build可以查看到这个默认keystore文件的位置. 二,新建正式签名过程: ...
 - iOS开发系列-ARC浅解
			
一.什么是 ARC ? 所谓ARC就是Automatic Reference Counting , 即自动引用计数.ARC是自iOS5引入的.ARC机制的引入是为了简化开发过程的内存管理的.相对于之前 ...
 - ES6系列_9之对象
			
1.对象赋值 es5中的对象赋值方式如下: let name="小明"; let skill= 'es6开发'; var obj= {name:name,skill:skill}; ...
 - shell脚本实现tomcat进程—查、杀、启
			
#!/bin/bash#获取XXX项目进程IDXXXpid=`ps -ef | grep XXX | grep -v grep | awk '{print $2}'` echo "XXX项目 ...
 - MVC表单提交写法1
			
初学MVC,感觉跟以前的aspx页面差别很大,我们就先来看看MVC的表单是怎么提交的吧. 现在我们用一个最简单的例子来看一看MVC是怎么提交表单的(这一个例子中,我们的关注点是如何提交表单,所以不涉及 ...
 - java集合:常用集合的数据结构
			
List 有序可重复 ArrayList ArrayList数据结构是数组.查询快,增删慢.ArrayList是线程不安全的,允许元素为null . Vector 线程安全的数组,效率较差,已经过时不 ...