glEvalMesh2 函数

计算点或线条的二维网格。

语法

void WINAPI glEvalMesh2(
   GLenum mode,
   GLint  i1,
   GLint  i2,
   GLint  j1,
   GLint  j2
);

参数

mode

一个值,该值指定是计算点、线条还是多边形的二维网格。 接受以下符号常量:GL_POINT、GL_LINE和GL_FILL。

i1

网格域变量 i 的第一个整数值。

i2

网格域变量 i 的最后一个整数值。

j1

网格域变量 j 的第一个整数值。

j2

网格域变量 j 的最后一个整数值。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
指示 模式 不是接受的值。
GL_INVALID_OPERATION
函数在 对 glBegin 的调用和 glEnd 的相应调用之间调用。

注解

使用 glMapGridglEvalMesh ,高效生成和评估一系列均匀间距的地图域值。 glEvalMesh 函数逐步执行一维或二维网格的整数域,其范围是 glMap1glMap2 指定的评估映射的域。 模式参数确定生成的顶点是作为点、线条还是填充多边形进行连接。

在二维案例中, glEvalMesh2,let

? u = (u2 u1) /n

? v = (v2 v1) /m,

其中 n、u1、u2、m、v1 和 v2 是最新 glMapGrid2 函数的参数。 然后,如果 模式 GL_FILL, glEvalMesh2 等效于:

for (j = j1;j j2; j < += 1)

{

glBegin (GL_QUAD_STRIP) ;

for (i = i1;i <= i2;i += 1)

{

glEvalCoord2 (i?u + u1 ( ) ,j? v + v1) ;

glEvalCoord2 (i?u + u1 ( ) , (j+1) ? v + v1) ;

}

glEnd ( ) ;}

如果 模式 GL_LINE,则 对 glEvalMesh2 的调用等效于:

for (j = j1;j <= j2; j += 1)

{

glBegin (GL_LINE_STRIP) ;

for (i = i1;i <= i2;i += 1)

{

glEvalCoord2 (i?u + u1,j?v + v1) ;

}

glEnd ( ) ;

}

for (i = i1;i <= i2;i += 1)

{

glBegin (GL_LINE_STRIP) ;

for (j = j1;j <= j1; j += 1)

{

glEvalCoord2 (i?u + u1,j?v + v1) ;

}

glEnd ( ) ;

}

最后,如果 模式 GL_POINT,则 对 glEvalMesh2 的调用等效于:

glBegin (GL_POINTS) ;

for (j = j1;j <= j2; j += 1)

{

for (i = i1;i <= i2;i += 1)

{

glEvalCoord2 (i?u + u1,j?v + v1) ;

}

}

glEnd ( ) ;

在所有三种情况下,唯一的绝对数值要求是,如果 i = n,则从 i 计算的值?u + u1 正好是 u2,如果 j = m,则从 j 计算的值?v + v1 正好是 v2。 以下函数检索与 glEvalMesh 相关的信息:

带参数GL_MAP1_GRID_DOMAIN的 glGet

带参数GL_MAP2_GRID_DOMAIN的 glGet

带参数的 glGet GL_MAP1_GRID_SEGMENTS

带参数GL_MAP2_GRID_SEGMENTS的 glGet

要求

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

Opengl32.lib
DLL
Opengl32.dll