Comment traduire un objet

Traduire un objet 2D consiste à déplacer l’objet le long de l’axe X, de l’axe y ou des deux. Vous pouvez appeler l’une des deux méthodes suivantes pour créer une transformation de traduction.

Le code suivant crée une matrice de transformation de traduction qui déplace le carré de 20 unités à droite le long de l’axe x et de 10 unités vers le bas le long de l’axe y.

    // 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);

L’illustration suivante montre l’effet de l’application de la transformation de traduction au carré, où le carré d’origine est un contour en pointillés et le carré traduit est un contour plein.

illustration d’un carré déplacé 20 unités vers la droite le long de l’axe X et 10 unités vers le bas le long de l’axe y

Référence Direct2D

Vue d’ensemble des transformations Direct2D