如何翻译对象
平移二维对象是沿 x 轴、y 轴或两者移动对象。 可以调用以下两种方法之一来创建转换。
- 平移 (D2D1_SIZE_F大小) :采用一个有序对,用于定义沿 x 轴和 y 轴进行平移的距离。
- 平移 (float x、float y) :采用沿 x 轴平移的距离和沿 y 轴平移的距离。
以下代码创建一个平移转换矩阵,该矩阵将正方形沿 x 轴向右移动 20 个单位,沿 y 轴向下移动 10 个单位。
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(126.0f, 80.5f, 186.0f, 140.5f);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the translation transform to the render target.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(20, 10));
// Paint the interior of the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
下图显示了将平移转换应用于正方形的效果,其中原始正方形是虚线轮廓,翻译后的正方形是实心轮廓。
相关主题