glMap1f 函式

glMap1dglMap1f 函式會定義一維評估工具。

語法

void WINAPI glMap1f(
         GLenum  target,
         GLfloat u1,
         GLfloat u2,
         GLint   stride,
         GLint   order,
   const GLfloat *points
);

參數

目標

評估工具所產生的值種類。 符號常數。 目標參數是符號常數,指出以為單位提供何種控制點,以及評估對應時所產生的輸出。 它可以假設有九個預先定義的其中一個值。

意義
GL_MAP1_VERTEX_3
每個控制點都是三個浮點值 ,代表 x、yz。 評估對應時會產生內部 glVertex3 命令。
GL_MAP1_VERTEX_4
每個控制點都是四個浮點值 ,代表 x、y、zw。 評估對應時,會產生內部 glVertex4 命令。
GL_MAP1_INDEX
每個控制點都是代表色彩索引的單一浮點值。 評估對應時,會產生內部 glIndex 命令。 不過,目前的索引不會以這些 glIndex 命令的值進行更新。
GL_MAP1_COLOR_4
每個控制點都是四個浮點值,代表紅色、綠色、藍色和 Alpha。 評估地圖時會產生內部 glColor4 命令。 不過,目前的色彩不會使用這些 glColor4 命令的值來更新。
GL_MAP1_NORMAL
每個控制點都是三個浮點值,代表一般向量的 x、yz 元件。 評估地圖時會產生內部 glNormal 命令。 不過,目前的常態不會以這些 glNormal 命令的值進行更新。
GL_MAP1_TEXTURE_COORD_1
每個控制點都是 代表紋理座標 的單一浮點值。 評估地圖時會產生內部 glTexCoord1 命令。 不過,目前的紋理座標不會以這些 glTexCoord 命令的值來更新。
GL_MAP1_TEXTURE_COORD_2
每個控制點都是兩個浮點值,代表 st 紋理座標。 評估地圖時會產生內部 glTexCoord2 命令。 不過,目前的紋理座標不會以這些 glTexCoord 命令的值來更新。
GL_MAP1_TEXTURE_COORD_3
每個控制點都是三個浮點值 ,代表 s、tr 紋理座標。 評估地圖時會產生內部 glTexCoord3 命令。 不過,目前的紋理座標不會以這些 glTexCoord 命令的值來更新。
GL_MAP1_TEXTURE_COORD_4
每個控制點都是四個浮點值 ,代表 s、t、rq 紋理座標。 評估地圖時會產生內部 glTexCoord4 命令。 不過,目前的紋理座標不會以這些 glTexCoord 命令的值來更新。

u1

u的線性對應,如glEvalCoord1所呈現,對應至u^,這是由此命令所指定的方程式所評估的變數。

u2

u的線性對應,如glEvalCoord1所呈現,對應至u^,這是由此命令所指定的方程式所評估的變數。

大步

一個控制點的開頭與以點為單位之資料結構中下一個控制點之間的浮點數或雙精度 點數。 這可讓控制點內嵌在任意資料結構中。 唯一的條件約束是特定控制點的值必須佔用連續記憶體位置。

order

控制點數目。 必須是正數。

控制點陣列的指標。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_ENUM
target 不是可接受的值。
GL_INVALID_VALUE
u1 等於 u2
GL_INVALID_VALUE
stride 小於控制點中的值數目。
GL_INVALID_VALUE
order 小於一或GL_MAX_EVAL_ORDER。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

評估工具可讓您使用多項式或合理多項式對應來產生頂點、法線、紋理座標和色彩。 評估工具所產生的值會傳送至 OpenGL 處理的進一步階段,就像是使用 glVertexglNormalglTexCoordglColor 命令來呈現,不同之處在于產生的值不會更新目前的正常、紋理座標或色彩。

您可以使用評估工具來描述 OpenGL 實作所支援之最高度數的所有多項式或合理多項式曲線) (。 這些幾乎包括電腦圖形中使用的所有曲線,包括 B 曲線、貝茲曲線、Hermite 曲線等等。

評估工具會根據一般數來定義曲線。 將 p () 定義為

顯示 p () 定義的方程式。

其中Ri是控制點,而 () 是i degree n (order =n + 1) :

方程式顯示 Degree n 的格子系。

回想一下

顯示與 1 相等的方程式。

glMap1函式可用來定義基礎,並指定產生的值種類。 定義之後,您可以使用地圖名稱呼叫glEnable 和 glDisable來啟用和停用地圖,這是上述目標的九個預先定義值之一。 glEvalCoord1函式會評估已啟用的一維對應。 當 glEvalCoord1呈現值 u時,會使用u^來評估一個值,其中

顯示您^定義的方程式。

跨步順序參數會定義用來存取控制點的陣列定址。 points參數是第一個控制點的位置,它會根據定義的對應,佔用一個、兩個、三個或四個連續記憶體位置。 order參數是陣列中的控制點數目。 stride參數會告知有多少浮點數或雙精度浮點數,以將內部記憶體指標往前移,以到達下一個控制點。

如同所有接受資料指標的 OpenGL 命令的情況,就如同glMap1在傳回之前複製的內容一樣。 呼叫glMap1之後,內容的變更不會有任何作用。

下列函式會擷取 與 glMap1相關的資訊:

glGet 搭配引數GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled 與引數GL_MAP1_VERTEX_3

glIsEnabled with argument GL_MAP1_VERTEX_4

glIsEnabled with argument GL_MAP1_INDEX

glIsEnabled with argument GL_MAP1_COLOR_4

glIsEnabled with argument GL_MAP1_NORMAL

glIsEnabled 搭配引數GL_MAP1_TEXTURE_COORD_1

glIsEnabled with argument GL_MAP1_TEXTURE_COORD_2

glIsEnabled with argument GL_MAP1_TEXTURE_COORD_3

glIsEnabled with argument GL_MAP1_TEXTURE_COORD_4

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex