gluNurbsSurface 函数

gluNurbsSurface 函数定义非均匀有理 B 样条的形状 (NURBS) 图面。

语法

void WINAPI 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
);

参数

nobj

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

sknot_count

参数 u 方向中的结数。

sknot

参数 u 方向中sknot_count非休止结值的数组。

tknot_count

参数 v 方向中的结数。

tknot

参数 v 方向中tknot_count非休止结值的数组。

s_stride

偏移量 (为在 ctlarray 参数 u 方向的连续控制点之间) 多个单精度浮点值。

t_stride

ctlarray 参数 v 方向的连续控制点之间,单精度浮点值的偏移量 () 。

ctlarray

包含 NURBS 图面的控制点的数组。 参数 uv 方向中连续控制点之间的偏移量由 s_stridet_stride 提供。

sorder

NURBS 图面在参数 u 方向上的顺序。 顺序比度多一个,因此以 u 为单位的立方表面的 u 阶为 4。

torder

NURBS 图面在参数 v 方向中的顺序。 顺序比度多一个,因此以 v 为单位为立方的图面的 v 顺序为 4。

type

图面的类型。 类型参数可以是任何有效的二维计算器类型 (,例如GL_MAP2_VERTEX_3或GL_MAP2_COLOR_4) 。

返回值

此函数不返回值。

注解

在任何修整) 之前,在 NURBS 表面定义中使用 gluNurbsSurface 来描述 NURBS 表面 (的形状。 若要标记 NURBS 表面定义的开头,请使用 gluBeginSurface 函数。 若要标记 NURBS 表面定义的末尾,请使用 gluEndSurface 函数。 仅在 NURBS 表面定义中调用 gluNurbsSurface

通过将每个位置、纹理和颜色坐标显示为 gluBeginSurface/gluEndSurface 对之间的单独 gluNurbsSurface,可以将位置、纹理和颜色坐标与图面相关联。 在单个 gluBeginSurface/gluEndSurface 对中,只能调用 gluNurbsSurface 以获取颜色、位置和纹理数据。 进行一次调用来描述 (GL_MAP2_VERTEX_3或GL_MAP2_VERTEX_4) 类型的 图面的位置。

可以通过在调用 gluBeginTrimgluEndTrim 之间使用 gluNurbsCurvegluPwlCurve 函数来剪裁 NURBS 图面。

u 方向具有sknot_count节的 gluNurbsSurface,在 v 方向为tknot_count结,具有 orders sordertorder 的 - (sknot_countsorder) 由 (tknot_count -torder) 控制点进行多管。

要求

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

Glu32.lib
DLL
Glu32.dll

另请参阅

gluBeginSurface

gluBeginTrim

gluEndSurface

gluEndTrim

gluNewNurbsRenderer

gluNurbsCurve

gluPwlCurve