|
楼主 |
发表于 2013-1-31 13:24:19
|
显示全部楼层
array 发表于 2013-1-31 12:59
能否进一步详述您的问题
就是实现move响应 鼠标移动 让视点也跟着移动 然后让鼠标始终保持在屏幕中心 但是找不到适当的例子 不知道怎么实现。。
int moveX = ea.getX();
int moveY = ea.getY();
float txy = 0.6*(-moveX+_mwidth)/_mwidth;
xy-=txy;
osg:uat qw(txy,osg::Vec3d(0,0,1));
_rotation*=qw;
osg::Quat at;
at.makeRotate(xy,Vec3(0,0,1));
_rotation*=at;
txy = 0.4*(+moveY-_mheight)/_mheight;
at.makeRotate(txy,osg::Vec3d(1,0,0));
_rotation*=at;
at.makeRotate(-xy,Vec3(0,0,1));
_rotation*=at;
aa.requestWarpPointer(_mwidth,_mheight); //光标重置到屏幕中心
这个是我现在的move里的代码 鼠标左右动没有问题 但是上下动 就不太对了 其中_mwidth _mheight是屏幕宽高的一半 |
|