다음을 통해 공유


매핑 모드 및 번역

매핑 모드는 다음 표에 설명되어 있습니다.

매핑 모드 설명
MM_ANISOTROPIC 페이지 공간의 각 단위는 디바이스 공간의 애플리케이션 지정 단위에 매핑됩니다. 축의 크기가 균등하게 조정되거나 조정되지 않을 수 있습니다(예를 들어 월드 공간에 그려진 원은 지정된 디바이스에 표시될 때 타원으로 표시될 수 있음). 축의 방향도 애플리케이션에 의해 지정됩니다.
MM_HIENGLISH 페이지 공간의 각 단위는 디바이스 공간의 0.001인치에 매핑됩니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 아래쪽에서 위쪽으로 증가합니다.
MM_HIMETRIC 페이지 공간의 각 단위는 디바이스 공간에서 0.01mm에 매핑됩니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 아래쪽에서 위쪽으로 증가합니다.
MM_ISOTROPIC 페이지 공간의 각 단위는 디바이스 공간의 애플리케이션 정의 단위에 매핑됩니다. 축은 항상 동일하게 조정됩니다. 축의 방향은 애플리케이션에서 지정할 수 있습니다.
MM_LOENGLISH 페이지 공간의 각 단위는 디바이스 공간에서 0.01인치로 매핑됩니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 아래쪽에서 위쪽으로 증가합니다.
MM_LOMETRIC 페이지 공간의 각 단위는 디바이스 공간에서 0.1mm로 매핑됩니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 아래쪽에서 위쪽으로 증가합니다.
Mm_text 페이지 공간의 각 단위는 1픽셀에 매핑됩니다. 즉, 크기 조정이 전혀 수행되지 않습니다. 변환이 적용되지 않는 경우(기본값) MM_TEXT 매핑 모드의 페이지 공간은 물리적 디바이스 공간과 동일합니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 위에서 아래로 증가합니다.
MM_TWIPS 페이지 공간의 각 단위는 프린터 지점의 20분의 1(1/1440인치)에 매핑됩니다. x 값이 왼쪽에서 오른쪽으로 증가합니다. y 값이 아래쪽에서 위쪽으로 증가합니다.

 

매핑 모드를 설정하려면 SetMapMode 함수를 호출합니다. GetMapMode 함수를 호출하여 DC에 대한 현재 매핑 모드를 검색합니다.

디바이스 공간 변환에 대한 페이지 공간 변환은 창 및 뷰포트에서 지정한 포인트에서 계산된 값으로 구성됩니다. 이 컨텍스트에서 창은 페이지 공간의 논리적 좌표계를 참조하고 뷰포트는 디바이스 공간의 디바이스 좌표계를 나타냅니다. 창과 뷰포트는 각각 원점, 가로("x") 익스텐트 및 세로("y") 익스텐트로 구성됩니다. 창 매개 변수는 논리적 좌표입니다. 디바이스 좌표(픽셀)의 뷰포트입니다. 시스템은 창과 뷰포트의 원점과 익스텐트 모두를 결합하여 변환을 만듭니다. 즉, 창과 뷰포트는 각각 페이지 공간의 지점을 디바이스 공간에 매핑하는 데 사용되는 변환을 정의하는 데 필요한 요소의 절반을 지정합니다. 따라서 시스템은 다음 그림과 같이 창 원점과 창 범위를 뷰포트 익스텐트로 매핑합니다.

페이지 공간의 창 원점과 디바이스 공간의 뷰포인트 원본을 보여 주는 그림

창 및 뷰포트 익스텐트에서는 페이지 공간에서 디바이스 공간 변환에 사용되는 비율 또는 배율 인수를 설정합니다. 6개의 미리 정의된 매핑 모드(MM_HIENGLISH, MM_LOENGLISH, MM_HIMETRIC, MM_LOMETRIC, MM_TEXT 및 MM_TWIPS)의 경우 SetMapMode 가 호출되면 시스템에서 익스텐트 집합을 설정합니다. 변경할 수 없습니다. 다른 두 매핑 모드(MM_ISOTROPIC 및 MM_ANISOTROPIC)에는 익스텐트 지정이 필요합니다. 이 작업은 SetMapMode 를 호출하여 적절한 모드를 설정한 다음 SetWindowExtExSetViewportExtEx 함수를 호출하여 익스텐트를 지정합니다. MM_ISOTROPIC 매핑 모드에서는 SetViewportExtEx를 호출하기 전에 SetWindowExtEx 호출해야 합니다.

창 및 뷰포트 원본은 페이지 공간에서 디바이스 공간 변환에 사용되는 번역을 설정합니다. SetWindowOrgEx 및 SetViewportOrgEx 함수를 사용하여 창 및 뷰포트 원본을 설정합니다. 원본은 익스텐트와 독립적이며 애플리케이션은 현재 매핑 모드에 관계없이 설정할 수 있습니다. 매핑 모드를 변경해도 현재 설정된 원본에는 영향을 주지 않습니다(익스텐트 영향을 줄 수 있음). 원본은 현재 매핑 모드가 영향을 주지 않는 절대 단위로 지정됩니다. 원본을 변경하려면 OffsetWindowOrgExOffsetViewportOrgEx 함수를 사용합니다.

다음 수식은 페이지 공간에서 디바이스 공간으로 지점을 변환하는 데 관련된 수학을 보여줍니다.

Dx = ((Lx - WOx) * VEx / WEx) + VOx 

다음 변수가 관련되어 있습니다.

Dx     x value in device units 
Lx     x value in logical units (also known as page space units) 
WOx     window x origin 
VOx     viewport x origin 
WEx     window x-extent 
VEx     viewport x-extent 

x를 대체하는 y와 동일한 수식은 y 구성 요소를 포인트로 변환합니다.

수식은 먼저 좌표 원점에서 점을 오프셋합니다. 더 이상 원점별로 편향되지 않는 이 값은 익스텐트 비율에 따라 대상 좌표계로 확장됩니다. 마지막으로 크기 조정된 값은 대상 원본에 의해 최종 매핑으로 오프셋됩니다.

LPtoDPDPtoLP 함수는 각각 논리 지점에서 디바이스 지점으로, 디바이스 지점에서 논리 지점으로 변환하는 데 사용할 수 있습니다.