最近做的项目有个需求,以鼠标位置为缩放中心进行放大缩小,VTK默认以视口中心进行缩放的。刚开始以为这种通用功能,vtk应该本身是支持的,经过查找与尝试,并没有找到合适的interactor。自己尝试在缩放的事件中不断移动camera的位置与焦点,无奈功力不够,算法搞不定,有没有人提供一波实现方法或者指条明路?感谢!
假定鼠标中心位于相机坐标(xc,yc,zc)处
先暂时关闭显示
将视口中心O(0,0)在相机投影平面内临时移到(xc,yc)处,
以视口中心缩放,
将视口中心O(xc,yc)在相机投影平面内移回(0,0)处,
开启显示