2009-12-15 3 views
2

VTK의 Y 축을 위로 올리거나 내릴 수있는 방법이 있습니까?Y 축을 vtk로 뒤집기

내 VTK 창이 내 비 -VTK 창과 일치하여 데이터 표시에 Y 축이 모두 떨어지도록하고 싶습니다.

답변

0

VTK에 익숙하지 않지만 기능이 SetReverseYAxis() 일 것입니다.

+0

vtkXYPlotActor에만 해당되는 것은 아닙니다. 다른 배우도 포함 된 내 전체 장면 Y 뒤집기를하고 싶습니다. – Alex77

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, Y를 아래로 볼 때 Z 축은 화면 왼쪽으로 증가합니다. 왼손잡이 시스템으로 작업하는 경우 혼란이 생길 ​​수 있습니다.

+0

내가 당신의 예를 오해하고있는 것이 아니라면, 카메라를 움직이고 거꾸로 뒤집어 쓴 것처럼 보입니다. 이것은 Y 축을 뒤집지만 X 축 역시 뒤집습니다. 이것은 내가 원하는 것이 아닙니다. 내 데이터의 Y가 "down"되고 VTK의 Y가 "up"됩니다. 이것은 VTK에서 근본적이며 사용자가 변경할 수있는 것이 아닙니다. – Alex77

+0

카메라가 + = y로 + z에서 XY 평면을보고있는 경우 y 축이 위로, x 축이 오른쪽입니다. 카메라를 -z로 이동하고 카메라를 위로 돌리면 y 축이 아래로 x 축이 오른쪽으로 이동합니다. –

0

VTK의 최신 차트 코드 (예 : vtkChartXY)를 고려해보십시오. 3D 장면에 간단한 선 그림을 보여주는 테스트를 추가했습니다 (TestChartsOn3D.cxx). vtkAxis 클래스는 최소 및 최대 방향을 설정할 수 있도록 설계되었습니다. 이 작업은 3D 장면과는 완전히 독립적이지만 2D 차트와 일치하도록 만들거나 할 수 있습니다. VTK 5.8.0 이상을 사용해야합니다.

0

제 상황에서는 QVtkWidget을 사용하여 direrions [-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(); 
관련 문제