glEvalMesh2 関数
点または線の 2 次元グリッドを計算します。
構文
void WINAPI glEvalMesh2(
GLenum mode,
GLint i1,
GLint i2,
GLint j1,
GLint j2
);
パラメーター
-
mode
-
ポイント、ライン、またはポリゴンの 2 次元メッシュを計算するかどうかを指定する値。 次のシンボリック定数を使用できます:GL_POINT、GL_LINE、およびGL_FILL。
-
i1
-
グリッド ドメイン変数 i の最初の整数値。
-
i2
-
グリッド ドメイン変数 i の最後の整数値。
-
j1
-
グリッド ドメイン変数 j の最初の整数値。
-
j2
-
グリッド ドメイン変数 j の最後の整数値。
戻り値
この関数は値を返しません。
エラー コード
glGetError 関数では、次のエラー コードを取得できます。
名前 | 意味 |
---|---|
|
mode が受け入れ可能な値ではないことを示します。 |
|
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。 |
解説
glMapGrid と glEvalMesh を並行して使用して、一連の等間隔マップ ドメイン値を効率的に生成および評価します。 glEvalMesh 関数は、1 次元または 2 次元グリッドの整数ドメインをステップ実行します。この範囲は、glMap1 と glMap2 で指定された評価マップのドメインです。 mode パラメーターは、結果の頂点をポイント、ライン、塗りつぶされたポリゴンとして接続するかどうかを決定します。
2 次元の場合、 glEvalMesh2 は let
? u = (u2 u1)/n
? v = (v2 v1)/m,
ここで、n、u1、u2、m、v1、および v2 は、最新の glMapGrid2 関数の引数です。 次に、 mode が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( );}
mode が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( );
}
最後に、 mode が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( );
3つのケースすべてにおいて、唯一の絶対数値要件は、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
glGet と引数 GL_MAP2_GRID_SEGMENTS
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|