如何旋转对象
本主题介绍如何围绕指定点旋转对象。 若要旋转对象,请调用 Matrix3x2F::Rotation 方法。 此方法采用两个参数,即指定角度和中心点。 角度是顺时针旋转角度(以度为单位),中心点是对象旋转的点。 中心点以转换对象的坐标系表示。
例如,以下代码将正方形中心顺时针旋转 45 度。
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);
// Draw the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the rotation transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Rotation(
45.0f,
D2D1::Point2F(468.0f, 331.5f))
);
// Fill the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the transformed rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
下图显示了将上述旋转转换应用于正方形的效果。 原始正方形是虚线轮廓,旋转的正方形是实心轮廓。
下图显示了以相同角度旋转不同中心点的效果。 请注意,旋转的对象相对于原始对象处于不同的位置。 左轮廓方块是围绕原始正方形中心旋转的结果,右轮廓方块是围绕原始正方形左上角旋转的结果。
相关主题