Guide pratique pour faire pivoter un objet

Cette rubrique explique comment faire pivoter un objet sur 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 autour duquel l’objet pivote. Le point central est exprimé dans le système de coordonnées de l’objet qui est transformé.

Par exemple, le code suivant fait pivoter un carré dans le sens des aiguilles d’une montre de 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 plein.

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

L’illustration suivante montre l’effet d’une rotation du même angle sur un autre point central. Notez que les objets pivotés sont dans des positions différentes par rapport à l’original. Le carré à contour gauche est le résultat d’une rotation autour du centre du carré d’origine, et le carré de droite est le résultat d’une rotation autour du coin supérieur gauche du carré d’origine.

illustration d’une rotation carrée de 45 degrés dans le sens des aiguilles d’une montre à propos d’un autre point central

Référence Direct2D

Vue d’ensemble des transformations Direct2D