Metodi ID2D1Brush::SetTransform

Imposta la trasformazione applicata al pennello.

Elenco di overload

metodo Description
SetTransform(D2D1_MATRIX_3X2_F&) Imposta la trasformazione applicata al pennello.
SetTransform(D2D1_MATRIX_3X2_F*) Imposta la trasformazione applicata al pennello.

Osservazioni:

Quando si disegna con un pennello, viene dipinto nello spazio delle coordinate della destinazione di rendering. I pennelli non si posizionano automaticamente per allinearsi all'oggetto disegnato; per impostazione predefinita, iniziano a disegnare all'origine (0, 0) della destinazione di rendering.

È possibile "spostare" la sfumatura definita da un ID2D1LinearGradientBrush in un'area di destinazione impostando il punto iniziale e il punto finale. Analogamente, è possibile spostare la sfumatura definita da un ID2D1RadialGradientBrush modificandone il centro e i raggi.

Per allineare il contenuto di un OGGETTO ID2D1BitmapBrush all'area da disegnare, è possibile utilizzare il metodo SetTransform per convertire la bitmap nella posizione desiderata. Questa trasformazione influisce solo sul pennello; non influisce su altri contenuti disegnati dalla destinazione di rendering.

Le illustrazioni seguenti illustrano l'effetto dell'uso di un oggetto ID2D1BitmapBrush per riempire un rettangolo situato in (100, 100). L'illustrazione a sinistra mostra il risultato del riempimento del rettangolo senza trasformare il pennello: la bitmap viene disegnata all'origine della destinazione di rendering. Di conseguenza, solo una parte della bitmap viene visualizzata nel rettangolo.

La figura a destra mostra il risultato della trasformazione di ID2D1BitmapBrush in modo che il relativo contenuto venga spostato a destra e 50 pixel verso il basso. La bitmap ora riempie il rettangolo.

illustrazione di due quadrati, uno dipinto con una bitmap senza un pennello trasformato e uno dipinto con un pennello trasformato

Examples

Negli esempi di codice seguenti viene illustrato come creare la trasformazione illustrata nel diagramma a destra nell'illustrazione precedente. Applicare prima una traduzione all'oggetto ID2D1BitmapBrush, spostando il pennello di 50 pixel lungo l'asse x e 50 pixel verso il basso lungo l'asse y. Usare quindi ID2D1BitmapBrush per riempire il rettangolo con l'angolo superiore sinistro in (100, 100) e l'angolo inferiore destro in (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);

Requirements

Requisito Value
Intestazione
D2d1_1.h (includere D2d1.h)
Library
D2d1.lib
DLL
D2d1.dll

Vedere anche

Panoramica dei pennelli

ID2D1Brush