Comment faire pivoter un objet

Cette rubrique explique comment faire pivoter un objet à propos d’un point spécifié. Pour faire pivoter un objet, appelez la méthode Matrix3x2F :: rotation . Cette méthode prend deux paramètres, l’angle spécifié et le point central. L’angle est un angle de rotation dans le sens des aiguilles d’une montre, en degrés, et le point central est le point sur lequel l’objet pivote. Le point central est exprimé dans le système de coordonnées de l’objet transformé.

Par exemple, le code suivant fait pivoter un carré dans le sens des aiguilles d’une montre à 45 degrés autour du centre du carré.

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

L’illustration suivante montre l’effet de l’application de la transformation de rotation précédente au carré. Le carré d’origine est un contour en pointillés, et le carré pivoté est un contour Uni.

illustration d’un carré pivoté dans le sens des aiguilles d’une montre à 45 degrés à propos du centre du carré d’origine

L’illustration suivante montre l’effet de la rotation par le même angle sur un point central différent. Notez que les objets pivotés se trouvent à des positions différentes par rapport à l’original. Le carré à gauche est le résultat d’une rotation autour du centre du carré d’origine, tandis que le carré droit est le résultat d’une rotation autour de l’angle supérieur gauche du carré d’origine.

illustration d’un carré pivoté dans le sens des aiguilles d’une montre à 45 degrés à propos d’un point central différent

Référence Direct2D

Vue d’ensemble des transformations Direct2D