Méthodes ID2D1Brush ::SetTransform

Définit la transformation appliquée au pinceau.

Liste de surcharges

Méthode Description
SetTransform(D2D1_MATRIX_3X2_F>) Définit la transformation appliquée au pinceau.
SetTransform(D2D1_MATRIX_3X2_F*) Définit la transformation appliquée au pinceau.

Remarques

Lorsque vous peintz avec un pinceau, il peint dans l’espace de coordonnées de la cible de rendu. Les pinceaux ne se positionnent pas automatiquement pour s’aligner sur l’objet peint ; par défaut, ils commencent à peindre à l’origine (0, 0) de la cible de rendu.

Vous pouvez « déplacer » le dégradé défini par un ID2D1LinearGradientBrush sur une zone cible en définissant son point de départ et son point de terminaison. De même, vous pouvez déplacer le dégradé défini par un ID2D1RadialGradientBrush en modifiant son centre et son rayon.

Pour aligner le contenu d’un ID2D1BitmapBrush sur la zone peinte, vous pouvez utiliser la méthode SetTransform pour traduire la bitmap à l’emplacement souhaité. Cette transformation affecte uniquement le pinceau ; elle n’affecte aucun autre contenu dessiné par la cible de rendu.

Les illustrations suivantes montrent l’effet de l’utilisation d’un ID2D1BitmapBrush pour remplir un rectangle situé à (100, 100). L’illustration de gauche montre le résultat du remplissage du rectangle sans transformer le pinceau : l’image bitmap est dessinée à l’origine de la cible de rendu. Par conséquent, seule une partie de la bitmap apparaît dans le rectangle.

L’illustration à droite montre le résultat de la transformation de l’ID2D1BitmapBrush afin que son contenu soit décalé de 50 pixels vers la droite et de 50 pixels vers le bas. La bitmap remplit désormais le rectangle.

illustration de deux carrés, un peint avec une bitmap sans pinceau transformé et un peint avec un pinceau transformé

Exemples

Les exemples de code suivants montrent comment créer la transformation affichée dans le diagramme de droite de l’illustration précédente. Tout d’abord, appliquez une traduction à l’ID2D1BitmapBrush, déplaçant le pinceau de 50 pixels le long de l’axe x et de 50 pixels le long de l’axe y. Utilisez ensuite l’ID2D1BitmapBrush pour remplir le rectangle qui a le coin supérieur gauche à (100, 100) et le coin inférieur droit à (200, 200).

// Create the bitmap to be used by the bitmap brush.
if (SUCCEEDED(hr))
{
    hr = LoadResourceBitmap(
        m_pRenderTarget,
        m_pWICFactory,
        L"FERN",
        L"Image",
        &m_pBitmap
        );
   
}
if (SUCCEEDED(hr))
{
    hr = m_pRenderTarget->CreateBitmapBrush(
        m_pBitmap,
        &m_pBitmapBrush
        );
}
D2D1_RECT_F rcTransformedBrushRect = D2D1::RectF(100, 100, 200, 200);



 // Demonstrate the effect of transforming a bitmap brush.
 m_pBitmapBrush->SetTransform(
     D2D1::Matrix3x2F::Translation(D2D1::SizeF(50,50))
     );

 // To see the content of the rcTransformedBrushRect, comment
 // out this statement.
 m_pRenderTarget->FillRectangle(
     &rcTransformedBrushRect, 
     m_pBitmapBrush
     );

 m_pRenderTarget->DrawRectangle(rcTransformedBrushRect, m_pBlackBrush, 1, NULL);

Exigences

Exigence Valeur
En-tête de page
D2d1_1.h (include D2d1.h)
Bibliothèque
D2d1.lib
DLL
D2d1.dll

Voir aussi

Vue d’ensemble des pinceaux

ID2D1Brush