OpenGL坐标系

OpenGL坐标系

OpenGL使用右手坐标

从左到右,x递增
从下到上,y递增
从远到近,z递增


OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。

世界坐标系以屏幕中心为原点(0, 0, 0)。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1)。

当前绘图坐标系是 绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。当用glTranslatef(),glScalef(), glRotatef()对当前绘图坐标系进行平移、伸缩、旋转变换之后, 世界坐标系和当前绘图坐标系不再重合。改变以后,再用glVertex3f()等绘图函数绘图时,都是在当前绘图坐标系进行绘图,所有的函数参数也都是相 对当前绘图坐标系来讲的。


OpenGL视点与视口


在刚开始学习时,有很多名词相近,各种叫法都有,容易混淆和弄错. 下面说明一下. 
1 视点: 也称视图,是指所处的观察点,也就是摄像机所在的地方.比如调用gluLookAt(),就是用来调整视点位置的.
2 视口: 也称视区.是指投影后在程序窗口中显示的范围.形象的讲,也就是摄像机拍下来照片,把这张照片经过缩放变换放在你想要放置的窗口位置上.调用glViewport()来设置视口的,改变里面的参数,就好理解.
3.世界坐标系<又称眼睛坐标系>与目标坐标系:
    首先理解世界坐标系,它是固定不变的. 可以这样设想:以窗口中心为原点,水平向右为+x轴,竖直向上为+y轴,垂直于屏幕指向我们为+z轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)-(1,1)。任何时候OpenGL都保存着一个当前的目标坐标系,在初始条件下,世界坐标系与目标坐标系是重合的,但我们可以对“目标坐标系”作各种变换: 平移、伸缩、旋转。经过这些变换之后,世界坐标系与目标坐标系不再重合.



我们生活在一个三维的世界——如果要观察一个物体,我们可以:
1、从不同的位置去观察它。(视图变换)
2、移动或者旋转它,当然了,如果它只是计算机里面的物体,我们还可以放大或缩小它。(模型变换)
3、如果把物体画下来,我们可以选择:是否需要一种“近大远小”的透视效果。另外,我们可能只希望看到
物体的一部分,而不是全部(剪裁)。(投影变换)
4、我们可能希望把整个看到的图形画下来,但它只占据纸张的一部分,而不是全部。(视口变换)
这些,都可以在 OpenGL 中实现。





文章转自:http://blog.csdn.net/firefly_liu/article/details/4160296和http://hi.baidu.com/imfei/item/03cba3c9e2257308c710b2ac




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值