728x90
1. 개요
VTK 에는 여러개의 기준 좌표계가 존재한다.
그리고 좌표계 간의 위치 값을 변환해주는 클래스가 vtkCoordinate 이다.
vtkCoordinate 를 이용하여 변환을 할 수 있는 좌표계는 아래와 같다.
Display | 윈도우 화면의 X, Y 좌표값 좌측하단이 0,0 이고 우측 상단이 window 사이즈 값이다 |
Nornmalized Display | Display 를 정규화한 값이다 0~1 |
Viewport | Renderer로 그린 viewport 영역에서의 X,Y 좌표 값 좌측하단이 0,0 이고 우측 상단이 viewport 사이즈 값이다 |
Normalized Viewport | Viewport 를 정규화한 값이다 0~1 |
View | Pose 좌표계에서의 X,Y,Z 값 -1~1 |
Pose | 카메라의 좌표계 |
World | X,Y,Z 의 3차원 공간의 글로벌 좌표계 |
Userdefined | X,Y,Z 의 사용자가 정의한 공간 좌표계 |
2. 좌표 변환
// Display 좌표를 World 좌표로 계산한다.
vtkCoordinate coordDisp = vtkCoordinate.New();
coordDisp.SetCoordinateSystemToDisplay();
coordDisp.SetValue(pos[0], pos[1], 0);
var worldPos = coordDisp.GetComputedWorldValue(activeRenderer);
// World 좌표의 값을 Display 좌표로 계산한다.
vtkCoordinate coordWorld = vtkCoordinate.New();
coordWorld.SetCoordinateSystemToWorld();
coordWorld.SetValue(sphActor.GetPosition().ToIntPtr());
var sphWPos = coordWorld.GetComputedDisplayValue(activeRenderer);
728x90
728x90