gluNurbsCurve 函数

gluNurbsCurve 函数定义非均匀有理 B 曲线的形状 (NURBS) 曲线。

语法

void WINAPI gluNurbsCurve(
   GLUnurbs *nobj,
   GLint    nknots,
   GLfloat  *knot,
   GLint    stride,
   GLfloat  *ctlarray,
   GLint    order,
   GLenum   type
);

参数

nobj

使用 gluNewNurbsRenderer) 创建的 NURBS 对象 (。

nknots

结中的 数。 nknots 参数等于控制点数加上顺序。

nknots 非声明性结值的数组。

大步

偏移量 (为连续曲线控制点之间) 多个单精度浮点值。

ctlarray

指向控制点数组的指针。 坐标必须与 类型一致。

order

NURBS 曲线的顺序。 顺序参数等于 degree + 1;因此,三次方曲线的阶数为 4。

type

曲线的类型。 如果此曲线是在 gluBeginCurve/gluEndCurve 对中定义的,则类型可以是任何有效的一维计算器类型 (,例如 GL_MAP1_VERTEX_3 或 GL_MAP1_COLOR_4) 。 在 gluBeginTrim/gluEndTrim 对之间,唯一有效的类型是GLU_MAP1_TRIM_2和GLU_MAP1_TRIM_3。

返回值

此函数不返回值。

注解

gluNurbsCurve 出现在 gluBeginCurve/gluEndCurve 对之间时,它描述要呈现的曲线。 通过将每个坐标显示为 gluBeginCurve gluEndCurve 对之间的单独 gluNurbsCurve 来关联位置坐标、纹理坐标和颜色坐标。/ 不要针对单个 gluBeginCurve/gluEndCurve 对中的颜色、位置和纹理数据多次调用gluNurbsCurve。 进行一次调用,以描述曲线的位置 (GL_MAP1_VERTEX_3或 GL_MAP1_VERTEX_4) 类型。

gluNurbsCurve 出现在 gluBeginTrim/gluEndTrim 对之间时,它描述 NURBS 图面上的剪裁曲线。 如果 type 为GLU_MAP1_TRIM_2,它将描述二维 (uv) 参数空间的曲线。 如果GLU_MAP1_TRIM_3,则描述二维同质 (uvw) 参数空间的曲线。 有关剪裁曲线的更多讨论,请参阅 gluBeginTrim

示例

以下函数使用法线呈现带纹理的 NURBS 曲线:

gluBeginCurve(nobj); 
    gluNurbsCurve(nobj, ..., GL_MAP1_TEXTURE_COORD_2); 
    gluNurbsCurve(nobj, ..., GL_MAP1_NORMAL); 
    gluNurbsCurve(nobj, ..., GL_MAP1_VERTEX_4);  
gluEndCurve(nobj); 

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Glu.h

Glu32.lib
DLL
Glu32.dll

另请参阅

gluBeginCurve

gluBeginTrim

gluEndCurve

gluEndTrim

gluNewNurbsRenderer

gluPwlCurve