第三章常见的鼠标键盘交互方法.docVIP

  • 40
  • 0
  • 约1.35万字
  • 约 17页
  • 2016-10-15 发布于湖北
  • 举报
第三章常见的鼠标键盘交互方法

TrackBall模式 Trackball模式是跟踪球模式,具体来说,就是物体的中心位置不变,而改变视点的位置,从而使模型随着鼠标的移动绕着中心位置旋转。 对于鼠标移动需要计算相应的视点(照相机)的运动情况,在osg中,通过TrackballManipulator::calcMovement()来实现,并且对于不同的鼠标事件,分别进行如下的操作: 按下鼠标的左键,则旋转照相机。 按下鼠标中间键或者同时按下鼠标的左键和与右键,则改变物体的中心位置,也即对物体进行平移操作。 按下鼠标的右键,则对模型进行缩放。 在按下鼠标的左键从而旋转照相机时,这里主要模拟了一个跟踪球技术,球的半径理想情况下应该基于旋转中心到鼠标所指的物体上某点的距离,但是为了简化处理,一般情况下,球的半径TRACKBALLSIZE可以预先给定,也能达到比较好的模拟效果。具体实现过程如下: 首先分别记录两次鼠标事件的坐标的(x1,y1)和(x2,y2),根据x坐标的最小值Xmin和最大值Xmax,以及y坐标的最小值Ymin和最大值Ymax,对(x1,y1)和(x2,y2)坐标进行规范化,转化到(-1,1)之间,不妨假设新的坐标点为p1和p2,然后通过将p1和p2投影到跟踪球上,从而获取相应的z坐标。这样,以球的中心为起始点,计算出的球上的两个点为终点,可以确定两个向量,不妨记作P1和P2,那么旋转轴axis = P2^

文档评论(0)

1亿VIP精品文档

相关文档