查看: 1004|回复: 4

关于漫游器的move响应

[复制链接]

该用户从未签到

发表于 2012-12-26 10:32:08 | 显示全部楼层 |阅读模式
我想实现move响应 让视点跟着鼠标转 我的操作器继承的是 FirstPersonManipulator
代码如下
  1. int moveX = ea.getX();
  2. int moveY = ea.getY();
  3. float txy = 0.6*(-moveX+_mwidth)/_mwidth;
  4. xy-=txy;
  5. osg::Quat qw(txy,osg::Vec3d(0,0,1));
  6. _rotation*=qw;
  7. osg::Quat at;
  8. txy = 0.4*(+moveY-_mheight)/_mheight;
  9. at.makeRotate(txy,osg::Vec3d(1,0,0));
  10. _rotation*=at;
  11. aa.requestWarpPointer(_mwidth,_mheight);
复制代码
请问哪有问题呢? 我移动鼠标的时候 视点各种瞎转。。

该用户从未签到

发表于 2012-12-26 10:57:10 | 显示全部楼层
呵呵,鼠标坐标就是变化抖动的,还有鼠标与意向移动的映射问题.

该用户从未签到

发表于 2012-12-26 10:58:00 | 显示全部楼层
好好查查设计的逻辑问题.GOOD LUCK.

该用户从未签到

 楼主| 发表于 2012-12-26 11:09:39 | 显示全部楼层
jack 发表于 2012-12-26 10:58
好好查查设计的逻辑问题.GOOD LUCK.

我说的问题不是抖动。。是我鼠标往上移动的时候视点往下走  左右移动的时候 视点不是左右动 而是旋转  完全随机的瞎转。。感觉逻辑上没问题啊 这里_mwidth和_mheight是屏幕大小的一半  我想知道这里的_ratation影响的是世界坐标系还是摄像机坐标系?

该用户从未签到

发表于 2012-12-27 09:24:35 | 显示全部楼层
抖动至少2种意思的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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