gluPickMatrix 函数

gluPickMatrix 函数定义选取区域。

语法

void WINAPI gluPickMatrix(
   GLdouble x,
   GLdouble y,
   GLdouble height,
   GLdouble width,
   GLint    viewport[4]
);

参数

x

选取区域的 x 窗口坐标。

y

选取区域的 y 窗口坐标。

height

以窗口坐标表示的选取区域的高度。

width

以窗口坐标表示的选取区域的宽度。

视窗

当前视区从 glGetIntegerv 调用) (。

返回值

此函数不返回值。

注解

gluPickMatrix 函数创建一个投影矩阵,可用于将绘图限制为视区的小区域。

  1. 使用 gluPickMatrix 将绘图限制为光标周围的小区域。

  2. 使用 glRenderMode) 进入选择模式 (,然后重新呈现场景。

    将在光标附近绘制的所有基元都会被标识并存储在选择缓冲区中。

由 gluPickMatrix 创建的矩阵乘以当前矩阵,就像使用生成的矩阵调用 glMultMatrix 一样。

  1. 调用 glLoadIdentity 以将标识矩阵加载到透视矩阵堆栈上。
  2. 调用 gluPickMatrix
  3. 调用函数 ((如 gluPerspective) )将透视矩阵乘以选取矩阵。

使用 gluPickMatrix 选取 NURBS) (非统一理性 B 样条时,请小心关闭 NURBS 属性,GLU_AUTO_LOAD_MATRIX。 如果未关闭GLU_AUTO_LOAD_MATRIX,则使用选取矩阵对呈现的任何 NURBS 图面进行细分的方式与不带选取矩阵的细分方式不同。

示例

渲染场景时,如下所示:

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

以下代码选择视区中的一部分:

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPickMatrix(x, y, width, height, viewport);  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

要求

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

Glu32.lib
DLL
Glu32.dll

另请参阅

glGetIntegerv

glLoadIdentity

glMultMatrix

glRenderMode

gluPerspective