개체 크기를 조정하는 방법
이 항목에서는 Matrix3x2F 클래스를 사용하여 개체의 크기를 조정하는 방법을 설명합니다. 개체 크기를 조정하려면 개체를 더 크거나 작게 만드는 것을 의미합니다. 다음 두 가지 메서드 중 하나를 호출하여 개체 크기를 조정할 수 있습니다.
- Matrix3x2F::Scale(D2D1_SIZE_F scalefactor, D2D1_POINT_2F centerpoint)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centerpoint)
첫 번째 메서드는 scalex 및 scaley 를 정렬된 부동 소수점 값 쌍으로 D2D1_SIZE_F 구조체에 저장합니다. 두 번째 메서드는 scalex 및 scaley를 개별 매개 변수로 정의합니다.
사용하는 메서드에 관계없이 scalex 및 scaley 요소를 모두 지정해야 합니다. scalex 값은 x 방향의 배율 인수입니다. 예를 들어 scalex 값이 1.5이면 x축을 따라 개체가 150%로 늘어납니다. 마찬가지로 배율 값은 y 방향의 배율 인수입니다. 예를 들어 0.5의 배율 값은 y축을 따라 개체의 높이를 50% 줄입니다.
점을 크기 조정 작업의 중심으로 지정하려면 centerpoint 매개 변수를 사용합니다. 기본적으로 개체는 원본(0,0)을 중심으로 합니다.
다음 예제 코드는 사각형의 크기를 원래 크기의 130%로 늘리는 배율 변환을 만듭니다. 중심점은 원래 사각형의 왼쪽 위 모서리로 설정됩니다.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 80.5f, 498.0f, 140.5f);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the scale transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::Size(1.3f, 1.3f),
D2D1::Point2F(438.0f, 80.5f))
);
// Paint the rectangle's interior.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
다음 그림에서는 사각형에 배율 변환을 적용하는 효과를 보여 줍니다. 원래 사각형은 점선 윤곽선이고 배율 정사각형은 단색 윤곽선입니다.
관련 항목