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祝威+悄悄在此留下版了个权的信息说: 四维向量 首先,我们定 ...
随机推荐
- MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer
mysql> select end) as '<60', end) as '60~69', end) as '70~79', end) as '80~89', end) as '>= ...
- 远程连接Linux虚拟机上的mysql失败的解决方法
今天在虚拟机Ubuntu上折腾了一晚上mysql,然后试着用java连接,搞了很久都没成功,但是同学配好的Debian上却连接成功了,也就是说我的配置有问题. 折腾了很久,最后还是通过理解异常信息来大 ...
- java之RestTemplate的访问应用
一.REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格.它是 ...
- 基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v
听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补.以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地 ...
- python的with用法(参考)
一.With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作.对于这种场景,Python的with语句提供了一种非常方便的处理方式.一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中 ...
- Java下LDAP操作的资料
话说LDAP真是个诡异的protocol(或者数据库,或者服务,whatever...),没有一个特别形象的spec.这里列出一些筛选出的还可以的文档,都是oracle的: https://docs. ...
- Unity XLua 官方案例学习
1. Helloworld using UnityEngine; using XLua; public class Helloworld : MonoBehaviour { // Use this f ...
- Struts 2 常用技术
目录 Struts 2 常用技术 1. 常用类和接口 1.1 getter 和 setter 方法 1.2 Action 接口 1.3 ActionSupport 类 1.4 通过 Act ...
- Python与Go快速排序
#!/usr/bin/env python # -*- coding: utf-8 -*- # 快速排序 # 时间复杂度 O(n lgn)-- O(n^2) def quick_sort(array) ...
- SpringBoot简单理解
SpringBoot 一.特点:1.默认大于配置,不需要大量配置文件,没有web.xml,拥有可运行的Application类. 2.一般通过java代码配置,而尽量少使用xml配置. 3.maven ...