如何让paraview的camera命令同时生效

How can i make camera commands of paraview take effect simultaneously

晚上好, 我有一个脚本可以在 paraview 中旋转相机。看起来像这样。

camera.Elevation(45)  
camera.Roll(90) 
Render()

事实是,当相机从已经旋转的位置开始旋转第二个命令时,改变命令的顺序会改变最终方向。有没有办法让两个命令同时生效? 感谢您的任何建议

给定一个 vtkCamera 对象,有一个方法 ApplyTransform 允许您将 vtkTransform 对象应用到您的相机。

vtkTransform 对象具有比 vtkCamera 接口中公开的简单方法更多的转换方法。您甚至可以使用多个变换对象来构建一个变换系统。如果您已经有了相机的变换矩阵,您可以使用 SetMatrix 方法将它传递给 vtkTransform 对象。

https://www.vtk.org/doc/nightly/html/classvtkTransform.html

您不能同时应用这两个命令。此外,这两个操作(Elevation 和 Roll)是不可交换的:

确实,你可以在这里看到: https://www.paraview.org/Wiki/ParaView_and_Python Roll(angle) 围绕 视图方向 和数据集原点定义的轴执行旋转。

由于使用或不使用Elevation会改变视图方向,因此最终结果也会改变。