개체 크기를 조정하는 방법

이 항목에서는 Matrix3x2F 클래스를 사용하여 개체의 크기를 조정하는 방법을 설명합니다. 개체 크기를 조정하려면 개체를 더 크거나 작게 만드는 것을 의미합니다. 다음 두 가지 메서드 중 하나를 호출하여 개체 크기를 조정할 수 있습니다.

  • Matrix3x2F::Scale(D2D1_SIZE_F scalefactor, D2D1_POINT_2F centerpoint)
  • Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centerpoint)

첫 번째 메서드는 scalexscaley 를 정렬된 부동 소수점 값 쌍으로 D2D1_SIZE_F 구조체에 저장합니다. 두 번째 메서드는 scalexscaley를 개별 매개 변수로 정의합니다.

사용하는 메서드에 관계없이 scalexscaley 요소를 모두 지정해야 합니다. 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);

다음 그림에서는 사각형에 배율 변환을 적용하는 효과를 보여 줍니다. 원래 사각형은 점선 윤곽선이고 배율 정사각형은 단색 윤곽선입니다.

원래 크기의 130%로 크기가 조정된 사각형 그림

Direct2D 변환 개요

Direct2D 참조