美文网首页
OpenGL各个多面体函数的理解(转)

OpenGL各个多面体函数的理解(转)

作者: 小_狐_狸 | 来源:发表于2017-08-26 15:19 被阅读0次

    1.gluLookAt()——视图变换函数

    把自己的眼睛当成是照相机,前三个参数表示眼睛的坐标,中间三个参数表示要拍照的物体的中心位置,可以理解成焦点吧,

    后三个参数表示头顶的朝向,比如说头可以歪着(哈哈)。但是我测试过,如果歪的不对,原来的正前方现在已经不是正前方

    了,那么就看不见物体了。举个例子:

    gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//这个就表示头顶是朝着y方向

    gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0);//这个表示头歪了45度,头顶朝着(1.0,1.0,0.0)这个方向

    2.glScalef() ——模型变换函数-缩放

    voidglScalef(GLfloatx,  GLfloaty,  GLfloatz);

    模型变换的目的是设置模型的位置和方向,例如可以对模型进行旋转、移动和缩放,或者联合这几种操作。

    这个函数表示模型在各轴上是如果进行缩放的。举个例子:

    glScalef (1.0, 2.0, 1.0);//表示y坐标值扩大两倍,这样原本方的物体就变成长的了。

    3.glTranslatef() ——模型变换函数-移动

    voidglTranslatef(GLfloatx,  GLfloaty,  GLfloatz);

    这个函数表示模型是怎样移动的。举个例子:

    glTranslatef(-1.0,0.0,-2.0);//表示物体沿x负方向移动1.0,沿z轴负方向移动2.0。所以就好像能看见侧面一样

    4.glRotatef()——模型变换函数-旋转

    voidglRotatef(GLfloatangle,  GLfloatx,  GLfloaty,  GLfloatz);

    angle表示旋转的角度(注意单位不是弧度),(x,y,z)表示转轴。举个例子:

    glRotatef(45.0, 0.0, 0.0, 1.0);//表示模型沿着(0,0,1)这个轴旋转45°。

    5.glFrustum() ——投影变换函数-透视投影

    前四个参数表示裁剪范围,后两个参数(要求为正数)表示近的面和远的面离眼睛的距离。有点儿像调焦。裁剪完后拉伸铺满整个屏幕。

    6.glPerspective() ——投影变换函数-透视投影

    voidgluPerspective(GLdoublefovy,  GLdoubleaspect,  GLdoublezNear,  GLdoublezFar);

    第一个参数表示在y方向上的视角度数。个人理解:比如45,表示眼睛和模型中心这个条线与y轴的夹角。

    第二个参数表示纵横比。x/y。比如2表示x、y本来都是1个长度,现在x可以当两个长度用,这样,模型就好像被x方向压缩了一样。

    后两个参数glFrustum()中后两个相近。要求都是正数

    相关文章

      网友评论

          本文标题:OpenGL各个多面体函数的理解(转)

          本文链接:https://www.haomeiwen.com/subject/lhamdxtx.html