VTK 3D显示时,鼠标事件的响应问题?
vtk吧
全部回复
仅看楼主
level 1
人杰蓝莓F3
楼主
在3D显示中,现在想实现选中某个actor时,按住鼠标左键移动,响应为该actor的移动,而不是体旋转;但当不选中这个actor时,按住鼠标左键移动,就是响应为体旋转。
请问各位大侠,这个需要怎么实现,谢谢!!t
2013年09月27日 08点09分
1
level 1
lm_lxt
1.选好交互方式,将键盘切换到英文输入状态,按下“a”。
2.按下鼠标中键移动鼠标就是平移actor。
2013年09月28日 01点09分
2
人杰蓝莓F3
“按下鼠标中键移动鼠标就是平移” 这种方法平移的应该是整个RenderWindow; 所以不适应RenderWindow 中具有多个actor,只移动其中一个actor;
2013年09月28日 01点09分
level 1
lm_lxt
我试过的,没有错。
你要的这个功能根本不需要编程!vtk默认就是。
2013年09月28日 01点09分
3
level 1
人杰蓝莓F3
楼主
我的需求,可能写的不是很清楚,不好意思。
我的需求:像上图中,总共有3个actor,我想实现的是,当某个actor被选中(如上图的钉子的钉尖)时,按住鼠标左键(当然也可以是其他的操作)移动时只移动被选中的,其他actor不动。
2013年09月28日 04点09分
4
level 1
lm_lxt
1.将输入法切换到英文
2.按“a”
3.按鼠标中键并移动
经过以上,就只能移动你的钉尖,其他部分不动。
这个功能不需要编程,vtk默认。
我用tcl,c++就不知道了。
2013年09月28日 09点09分
5
level 12
rabbitbride
应该就是VTK默认的啊。这个不至于在重写callback吧?
2013年09月28日 12点09分
6
level 1
人杰蓝莓F3
楼主
我用qt的,使用qvtkWidget显示的,试了下还是不行。
现在的方法是修改vtkInteractorstyle的其中一个子类,完成了这个功能。
不知道你们vtk的实现中,vtkRenderWindowInteractor对于的vtkInteractorstyle是哪个子类?
vtkRenderWindowInteractor对按键、鼠标等的事件响应基本都是在vtkInteractorstyle及其子类中实现的。
2013年09月29日 13点09分
7
level 2
gaozhenyu90123
请问这个问题你解决了吗?我现在是两个volume对象,然后要实现鼠标点击哪个volume,哪个volume移动。是要用到vtkInteractorStyle这个类,没有头绪
2015年04月09日 08点04分
8
rabbitbride
这个有现成的demo~ 一会儿帮你找找
2015年04月10日 01点04分
gaozhenyu90123
@rabbitbride
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢,有的话帮我发个邮箱也可以,
[email protected]
2015年04月21日 02点04分
花开魔幻地87
可以给我也发下demo不,
[email protected]
2015年10月27日 02点10分
你不是真的痛苦
@rabbitbride,求demo
,
[email protected]
2015年11月04日 02点11分
level 10
婆婆佳人
十五字
十五字十五字十五字十五字十五字十五字十五字十五字十五字十五字十五字
2015年04月15日 18点04分
9
rabbitbride
欢迎每天15字
2015年04月16日 01点04分
level 1
贴吧用户_5VX2e8D
trackballCamera = vtkInteractorStyleTrackballCamera.New();
trackballCamera.LeftButtonPressEvt += Interactor_LeftButtonPressEvt;
trackballCamera.MouseMoveEvt += Interactor_MouseMoveEvt;
trackballCamera.LeftButtonReleaseEvt += Interactor_LeftButtonReleaseEvt;
interactor.SetInteractorStyle(trackballCamera);
interactor.SetRenderWindow(rwc.RenderWindow);
直接重写
2023年05月09日 06点05分
10
1