개체를 기울이는 방법
개체를 기울이거나 전단하는 것은 x축, y축 또는 둘 다에서 지정된 각도로 개체를 왜곡하는 것을 의미합니다. 예를 들어 사각형을 기울이면 병렬 이동이 됩니다.
Matrix3x2F::Skew 메서드는 다음 세 가지 매개 변수를 사용합니다.
- angleX: y축에서 시계 반대 방향으로 측정되는 x축 기울이기 각도입니다.
- angleY: x축에서 시계 방향으로 측정되는 y축 기울이기 각도입니다.
- centerPoint: 기울이기를 수행하는 지점입니다.
기울이기 변환의 효과를 예측하려면 angleX 가 y축에서 시계 반대 방향으로 측정된 기울이기 각도임을 고려합니다. 예를 들어 angleX 가 30으로 설정된 경우 개체는 중심점의 y축을 따라 시계 반대 방향으로 30도 기울어집니다. 다음 그림에서는 사각형의 왼쪽 위 모서리에 대해 가로로 30도 기울어진 정사각형을 보여 줍니다.
마찬가지로 angleY 는 x축에서 시계 방향으로 측정된 기울이기 각도입니다. 예를 들어 angleY 가 30으로 설정된 경우 개체는 중심점의 x축을 따라 시계 방향으로 30도 기울어집니다. 다음 그림에서는 사각형의 왼쪽 위 모서리에 대해 세로로 30도 기울어진 정사각형을 보여 줍니다.
angleX와 angleY를 모두 30도로 설정하고 centerPoint를 사각형의 왼쪽 위 모서리로 설정하면 다음과 같은 기울어진 사각형(단색 윤곽선)이 표시됩니다. 기울어진 사각형은 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도입니다.
관련 항목