ID2D1Brush::SetTransform(constD2D1_MATRIX_3X2_F&)-Methode (d2d1.h)

Legt die Transformation fest, die auf den Pinsel angewendet wird.

Syntax

void SetTransform(
  [ref] const D2D1_MATRIX_3X2_F & transform
);

Parameter

[ref] transform

Typ: const D2D1_MATRIX_3X2_F

Die Transformation, die auf diesen Pinsel angewendet werden soll.

Rückgabewert

Keine

Bemerkungen

Wenn Sie mit einem Pinsel malen, wird er im Koordinatenraum des Renderziels gezeichnet. Pinsel positionieren sich nicht automatisch so, dass sie mit dem zu bemalten Objekt ausgerichtet werden. Standardmäßig beginnen sie mit dem Zeichnen am Ursprung (0, 0) des Renderziels.

Sie können den durch einen ID2D1LinearGradientBrush definierten Farbverlauf in einen Zielbereich verschieben, indem Sie den Start- und Endpunkt festlegen. Ebenso können Sie den von einem ID2D1RadialGradientBrush definierten Farbverlauf verschieben, indem Sie den Mittelpunkt und die Radien ändern.

Um den Inhalt eines ID2D1BitmapBrush an dem gezeichneten Bereich auszurichten, können Sie die SetTransform-Methode verwenden, um die Bitmap an die gewünschte Position zu übersetzen. Diese Transformation wirkt sich nur auf den Pinsel aus. Es wirkt sich nicht auf andere Inhalte aus, die vom Renderziel gezeichnet wurden.

Die folgenden Abbildungen zeigen den Effekt der Verwendung eines ID2D1BitmapBrush zum Ausfüllen eines Rechtecks mit (100, 100). Die Abbildung in der linken Abbildung zeigt das Ergebnis des Füllens des Rechtecks, ohne den Pinsel zu transformieren: Die Bitmap wird am Ursprung des Renderziels gezeichnet. Daher wird nur ein Teil der Bitmap im Rechteck angezeigt.

Die Abbildung auf der rechten Seite zeigt das Ergebnis der Transformation des ID2D1BitmapBrush , sodass sein Inhalt um 50 Pixel nach rechts und 50 Pixel nach unten verschoben wird. Die Bitmap füllt nun das Rechteck aus.

Abbildung von zwei Quadraten, eines mit einer Bitmap ohne transformierten Pinsel und eines mit einem transformierten Pinsel gemalt

Beispiele

Die folgenden Codebeispiele zeigen, wie Sie die Transformation erstellen, die im rechten Diagramm in der vorherigen Abbildung dargestellt ist. Wenden Sie zunächst eine Übersetzung auf den ID2D1BitmapBrush an, und bewegen Sie den Pinsel 50 Pixel direkt entlang der x-Achse und 50 Pixel entlang der y-Achse nach unten. Verwenden Sie dann id2D1BitmapBrush , um das Rechteck mit der oberen linken Ecke (100, 100) und der unteren rechten Ecke mit (200, 200) zu füllen.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

Übersicht über Pinsel

ID2D1Brush