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 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
指示 模式 不是接受的值。 |
|
函数在 对 glBegin 的调用和 glEnd 的相应调用之间调用。 |
注解
使用 glMapGrid 和 glEvalMesh ,高效生成和评估一系列均匀间距的地图域值。 glEvalMesh 函数逐步执行一维或二维网格的整数域,其范围是 glMap1 和 glMap2 指定的评估映射的域。 模式参数确定生成的顶点是作为点、线条还是填充多边形进行连接。
在二维案例中, 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 [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|