转换坐标

OpenGL 实用工具库 (GLU) 提供了几个常用的矩阵转换函数。 可以使用 gluOrtho2D使用 gluPerspective 的标准透视视图卷或以 gluLookAt 的指定眼点为中心的视图卷设置二维或图式查看区域。 其中每个函数创建所需的矩阵,并使用 glMultMatrix 将其应用于当前矩阵。

gluPickMatrix 函数通过创建将绘图限制为视区小区域的矩阵来简化选取矩阵的选择。 如果在应用此矩阵后以选择模式重新呈现场景,则会选择在光标附近绘制的所有对象,并且有关这些对象的信息将存储在选择缓冲区中。 有关选择模式的详细信息,请参阅“执行选择和 反馈”执行选择和反馈

若要确定对象正在绘制的窗口中的位置,请使用 gluProject,它使用 modelMatrixprojMatrix视区将指定的对象坐标 objxobjy 和 objz 转换为窗口坐标。 结果存储在 winxwinywinz 中。 如果函数成功,则返回值GL_TRUE。 如果函数失败,则返回值GL_FALSE。

gluUnProject 函数执行反转换:它使用 modelMatrixprojMatrix视区将指定的窗口坐标 winx、winywinz 转换为对象坐标。 结果存储在 objxobjyobjz 中。 如果函数成功,则返回值GL_TRUE。 如果函数失败,则返回值GL_FALSE。