查看: 1772|回复: 5

Trackball操作器里矩阵问题请教

[复制链接]

该用户从未签到

发表于 2012-8-1 21:08:22 | 显示全部楼层 |阅读模式
大家好,最近需要自己写个操作器,想仿照Trackball操作器来写,但是看了几天没看懂
有几个问题请教:

Trackball类里有三个成员 _center,_rotation,_distance。
_rotation记录了旋转轴和角度,但是_center,和_distance的作用是什么呢?
_center如果是相机朝向的参考点,又没有存相机位置eye是怎么算出相机朝向的呢
_distance就更不明白了,它的作用是什么
看了好几天矩阵和四元数了,都没搞明白,谁给说下啊,谢谢了

该用户从未签到

发表于 2012-8-2 08:05:31 | 显示全部楼层
center是你观察的场景的中心坐标,distance 是距离这个中心的距离

该用户从未签到

 楼主| 发表于 2012-8-2 09:02:24 | 显示全部楼层
liuzhiyu123 发表于 2012-8-2 08:05
center是你观察的场景的中心坐标,distance 是距离这个中心的距离

感谢回复。观察的场景的中心是什么意思呢? 场景的中心不是0,0,0么

该用户从未签到

发表于 2012-8-2 09:45:16 | 显示全部楼层
包围盒 center

该用户从未签到

发表于 2012-8-3 17:15:23 | 显示全部楼层
_distance 是eye与_center之间的距离,_center正如你所说,是相机朝向的参考点。_rotation是eye关于_center的旋转

该用户从未签到

发表于 2012-8-3 21:42:52 | 显示全部楼层
参考camera->getViewMatrixAsLookAt(eye, center, up, distance)
eye不用说了,center不用说了,up也不用说了,distance也不用说了
相机初始情况是:朝向-z轴方向看,up是(0,1,0),直观一点就是可以理解成eye在(0,0,1),center是(0,0,0),此时distance  =1
Trackball类里有三个成员 _center,_rotation,_distance:其实跟上面完全一样,_rotation_center其实就是_eye的另一种表述形式~含义就是现在相机的旋转位置相对于初始情况的矩阵,初始情况已经解释~至于_center,_distance完全一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表