如何翻译对象

平移二维对象是沿 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);

下图显示了将平移转换应用于正方形的效果,其中原始正方形是虚线轮廓,翻译后的正方形是实心轮廓。

正方形图沿 x 轴向右移动 20 个单位,沿 y 轴向下移动 10 个单位

Direct2D 参考

Direct2D 转换概述