Switch Axes 3D
1 개요
서로 다른 좌표축의 순서를 전환하는 알고리즘.
2 알고리즘 상세 설명
Source Data | Result Data |
---|---|
![]() |
![]() |
3 파라미터 설정 및 사용 방법
다음 함수들을 사용하여 카메라의 위치 및 방향을 지정합니다.
SetAxisOrder(EAxisOrder eAxisOrder);
- X, Y, Z축이 부호 변경 없이 서로 Shuffle되는 세 가지 경우를 위한 쉬운 함수입니다. XYZ, YZX, ZXY 순서를 지원합니다.
- XZY, ZYX, YXZ의 경우는 좌표축의 orientation이 바뀌므로 아래 함수를 사용합니다.
SetAxisMappings(EAxisMapping eAxisMappingToX, EAxisMapping eAxisMappingToY, EAxisMapping eAxisMappingToZ, bool bReverseOrientation = false);
- 새 좌표축의 X, Y, Z이 어느 값에서 왔는지, 좌표계의 orientation(오른손/왼손 좌표계)이 일치하는지 전환되는지를 각각 제공해야 합니다.
- 입력된 값이 실제로 가능한 조합인지를 검증합니다. 입력된 좌표축 세 개가 서로 직교하지 않거나, 서로 직교하지만 네 번째 orientation 인자와 충돌할 경우 올바르지 않은 파라미터 결과를 받습니다.
- 또한 세 좌표축 중 하나를 나머지 둘과 입력 orientation으로부터 연역할 수 있는 EAxisMapping::Deduce가 있습니다. 이 경우 나머지 두 축이 직교하지 않으면 실패, 그렇지 않으면 사용 가능한 유일한 방향이 존재하여 그 방향을 선택합니다.
4 예제
CSwitchAxes3D SwitchAxes3D;
CFL3DObject floSource;
CFL3DObject floDestination;
floSource.Load(L"C:/Users/Public/Documents/FLImaging/ExampleImages/DistanceTransform3D/binary-vertex.ply");
SwitchAxes3D.SetSourceObject(floSource);
SwitchAxes3D.SetDestinationObject(floDestination);
CSwitchAxes3D::EAxisMapping eToX = CSwitchAxes3D::EAxisMapping_From_PX;
CSwitchAxes3D::EAxisMapping eToY = CSwitchAxes3D::EAxisMapping_From_PZ;
CSwitchAxes3D::EAxisMapping eToZ = CSwitchAxes3D::EAxisMapping_Deduce;
bool bLeftHanded = false;
SwitchAxes3D.SetAxisMappings(eToX, eToY, eToZ, bLeftHanded);
SwitchAxes3D.Execute();