다음을 통해 공유


개체를 기울이는 방법

개체를 기울이거나 전단하는 것은 x축, y축 또는 둘 다에서 지정된 각도로 개체를 왜곡하는 것을 의미합니다. 예를 들어 사각형을 기울이면 병렬 이동이 됩니다.

Matrix3x2F::Skew 메서드는 다음 세 가지 매개 변수를 사용합니다.

  • angleX: y축에서 시계 반대 방향으로 측정되는 x축 기울이기 각도입니다.
  • angleY: x축에서 시계 방향으로 측정되는 y축 기울이기 각도입니다.
  • centerPoint: 기울이기를 수행하는 지점입니다.

기울이기 변환의 효과를 예측하려면 angleX 가 y축에서 시계 반대 방향으로 측정된 기울이기 각도임을 고려합니다. 예를 들어 angleX 가 30으로 설정된 경우 개체는 중심점의 y축을 따라 시계 반대 방향으로 30도 기울어집니다. 다음 그림에서는 사각형의 왼쪽 위 모서리에 대해 가로로 30도 기울어진 정사각형을 보여 줍니다.

y축에서 시계 반대 방향으로 30도 기울어진 정사각형 그림

마찬가지로 angleY 는 x축에서 시계 방향으로 측정된 기울이기 각도입니다. 예를 들어 angleY 가 30으로 설정된 경우 개체는 중심점의 x축을 따라 시계 방향으로 30도 기울어집니다. 다음 그림에서는 사각형의 왼쪽 위 모서리에 대해 세로로 30도 기울어진 정사각형을 보여 줍니다.

x축에서 시계 방향으로 30도 기울어진 정사각형 그림

angleXangleY를 모두 30도로 설정하고 centerPoint를 사각형의 왼쪽 위 모서리로 설정하면 다음과 같은 기울어진 사각형(단색 윤곽선)이 표시됩니다. 기울어진 사각형은 y축에서 시계 반대 방향으로 30도, x축에서 시계 방향으로 30도 기울어져 있습니다.

y축에서 시계 반대 방향으로 30도, x축에서 시계 방향으로 30도 기울어진 정사각형 그림

다음 코드 예제에서는 사각형의 왼쪽 위 모서리를 가로로 45도 기울입니다.

    // Create a rectangle.
    D2D1_RECT_F rectangle = D2D1::Rect(126.0f, 301.5f, 186.0f, 361.5f);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(
        rectangle,
        m_pOriginalShapeBrush,
        1.0f,
        m_pStrokeStyleDash
        );

    // Apply the skew transform to the render target.
    m_pRenderTarget->SetTransform(
        D2D1::Matrix3x2F::Skew(
            45.0f,
            0.0f,
            D2D1::Point2F(126.0f, 301.5f))
        );

    // Paint the interior of the rectangle.
    m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

다음 그림에서는 원래 사각형이 점선 윤곽선이고 기울어진 개체(parallelogram)가 단색 윤곽선인 사각형에 기울이기 변환을 적용하는 효과를 보여 줍니다. 기울이기 각도는 y축에서 시계 반대 방향으로 45도입니다.

y축에서 시계 반대 방향으로 45도 기울어진 정사각형 그림

Direct2D 변환 개요

Direct2D 참조