有没有办法可以让VTK让Y轴下降(增加值时)而不是上升?
我希望我的VTK窗口能够匹配我的非VTK窗口显示数据,这些数据都会使Y轴下降。
答案 0 :(得分:5)
根据您的具体操作,您可以轻松操作相机。
尝试这样的事情:
// To look "into" the X axis, with Y-axis pointing downwards
vtkCamera * cam = myRenderer->GetActiveCamera();
cam->SetPosition(1, 0, 0);
cam->SetFocalPoint(0, 0, 0);
cam->SetViewUp(0, -1, 0);
// To view the full bounds of your scene
myRenderer->ResetCamera();
操纵这些伊娃,你应该能够很容易地解决这些问题。如果你想做一些更复杂的事情,你可以使用camara-> SetUserTransform()设置一个vtkTransform到相机并操纵变换而不是试图计算出相机位置。
但请注意,VTK始终采用右手坐标系。在上面的例子中,我看到X并向下看Y,Z轴向屏幕左侧增加。如果你正在使用左撇子系统,这可能会引起一些混乱。
答案 1 :(得分:0)
我不熟悉VTK,但函数SetReverseYAxis()
可能就是您所需要的。
答案 2 :(得分:0)
您可以考虑使用VTK中较新的图表代码,例如vtkChartXY。我添加了一个测试,在3D场景TestChartsOn3D.cxx上显示一个简单的线图,而vtkAxis类旨在允许您设置任一方向的最小值和最大值。这将完全独立于3D场景,但您可以做任何您想要的事情,使其与2D图表匹配。您需要使用VTK 5.8.0或更高版本。
答案 3 :(得分:0)
在我的情况下,我使用QVtkWidget来显示带有方向[-1,-1,1]的DICOM轴向音量。这对我有用:
vtkSmartPointer<vtkImageViewer2> imageViewer=
vtkSmartPointer<vtkImageViewer2>::New();
vtkCamera * cam = imageViewer->GetRenderer()->GetActiveCamera();
cam->SetFocalPoint (0, 0, 0);
cam->SetPosition (0, 0, -1); // Camera in Z so it display XY planes.
cam->SetViewUp (-1, 0, 0); // Up direction is the X not the y.
imageViewer->GetRenderer()->ResetCamera( );