查看: 2153|回复: 7

操作器:鼠标移动点如何与场景移动保持一致

[复制链接]

该用户从未签到

发表于 2012-9-13 11:14:33 | 显示全部楼层 |阅读模式
本帖最后由 gis_wudi 于 2012-9-13 14:58 编辑

现有的操作器,在场景中,鼠标从一个点拖动到另一个点,如何使对应的场景也能吻合的随鼠标移动
如图:
1.jpg
2.jpg
google earth中这点做的比较好,各位有没有好的思路提供一下,如何完善这个功能

该用户从未签到

发表于 2012-9-13 12:14:59 | 显示全部楼层
这个就是我那个帖子问的么,你要计算真是的坐标差,我也在等答案。看我那个帖子,摄像机精确旋转那个。

该用户从未签到

 楼主| 发表于 2012-9-14 13:31:23 | 显示全部楼层
不顶不行

该用户从未签到

发表于 2012-9-17 15:28:42 | 显示全部楼层
可以的,你要首先捕捉到鼠标按下的三维位置点,构成一个平面,然后相机在这个平面做相对运动

该用户从未签到

发表于 2012-9-18 21:37:29 | 显示全部楼层
论坛上有个帖子,叫什么名字有点忘记了,内容是求出 MVW矩阵,然后用屏幕坐标加深度值组成的点乘以这个mvw矩阵,得到三维空间点的坐标,然后由两个三维点坐标求出相机移动需要做的移动,不知道这样可行否

该用户从未签到

发表于 2012-9-19 08:03:57 | 显示全部楼层
        float scale = -0.3f * _distance * getThrowScale( eventTimeDelta );
        panModel( dx*scale, dy*scale );

调整上面的参数就可以

该用户从未签到

发表于 2012-9-24 17:08:31 | 显示全部楼层
现有操作器应该是做不到这么精确的调整的,我以前实现地球漫游的时候,是直接求取鼠标位置的坐标然后平移的。因为OSG的场景结构,所以不会有太大的求交效率损失

该用户从未签到

 楼主| 发表于 2012-9-27 09:06:31 | 显示全部楼层
谢谢各位的解答,我会尝试一下不同方案
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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