您的位置:首页 > 其它

gluLookAt() 函数

2011-03-07 09:19 393 查看

gluLookAt() 函数

函数原型
void gluLookAt(
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz
);



eye=(eyex, eyey, eyez)是视点(原点)的位置
center = (centerx, centery, centerz)是视口中心点的位置
center - eye是z轴负方向
z = (eye - center) / |eye - center|
up = (upx, upy, upz) - eye表示上方
x轴正方向x = up × z / |up × z|
y轴正方向(就是正上方)y = z × x

gluLookAt()相当于设定平移,旋转,倾斜三个基本的矩阵。前面三个参数是你的眼睛的位置,表示你观察三维场景(scene)的位置。中间三个参数是物体的中心点坐标。我觉得这两个都不难理解,你肯定也明白。比较不好理解的是最后三个参数。其实,它的意思就是代表物体的朝向的一个矢量。OpenGL是通过z方向的值来表明物体的远近的,一般来说,物体的朝向就是y方向了。
关于 gluLookAt。 这个函数可以变换视点的位置, 使得可以在不同角度观察 3D 模型。 void gluLookAt( GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ,GLdouble centerX, GLdouble centerY, GLdouble centerZ,GLdouble upX, GLdouble upY, GLdouble upZ); eyeX, eyeY, eyeZ 指定视点的位置。centerX, centerY, centerZ 指定参考点的位置。upX, upY, upZ 指定 up 向量(视点, 即相机的顶部向上的位置)。这 3 个空间的点确定一个面, 这个面和屏幕垂直, eye* 射到屏幕视口中心, center* 映射到 -Z 轴的方向上, up* 映射到 +Y 方向上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: