【C# MSTN CE】 能不能在某个窗口改变滚轮移动视角的功能?

我想在某个指定窗口中修改鼠标滚轮的功能,因为在常规的鼠标滚轮缩放视角是通过移动自身视点位置实现的,我想保持自身位置不变,通过滚轮修改视距或其他方法来实现缩放功能,应该怎样实现

Parents
  • 可否详细描述您这个需求的具体应用场景?MS的滚轮缩放功能和其他大多数软件的都是一样的,您这种特殊需求还是第一次听到。



  • 您好,是这样,目前我在实现的是一个全景影像和点云结合浏览的功能 如右图,这个是把全景影像作为background图像加载进去,浏览是借助Define camera实现视角移动浏览,但这个过程中不能使用滚轮进行缩放,因为滚轮缩放会移动自身视点位置,自身位置移动后点云范围会有变化,而背景图像是不会根据位置变化而改变的,我想得是能不能通过修改滚轮事件,将移动自身位置改成修改视距或其他视角属性来实现浏览中的缩放功能,因为我试了下修改Define camera中的focal distance属性貌似可以实现这种条件下的缩放,主要是在保持自身视点位置不变的情况下进行周围浏览与局部缩放。想了解下鼠标滚轮事件能不能在指定某个窗口,即右侧的全景窗口中绑定其他内容,然后对于视角视距焦点这些内容该如何编辑并绑定到鼠标滚轮事件,这个过程该如何实现,会用到哪些接口,谢谢

  • 您的全景影像是一个平面的照片而非真实的三维立体对吗?在DgnTool类中确实有鼠标滚轮事件的处理函数_OnMouseWheel,但它必须和自己写的一个工具关联才可以。你可以深入学习一下MS中的DgnTool的编程。可参考郭老师的系列文章:



    Answer Verified By: mengqi fu 

Reply Children