Condividi tramite


Metodo ID2D1Brush::SetTransform(constD2D1_MATRIX_3X2_F&) (d2d1.h)

Imposta la trasformazione applicata al pennello.

Sintassi

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

Parametri

[ref] transform

Tipo: const D2D1_MATRIX_3X2_F

Trasformazione da applicare a questo pennello.

Valore restituito

nessuno

Osservazioni

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

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

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 mostrano l'effetto dell'uso di un oggetto ID2D1BitmapBrush per riempire un rettangolo situato in (100, 100). La figura 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

Esempio

Gli esempi di codice seguenti illustrano come creare la trasformazione illustrata nel diagramma destro nella figura precedente. Applicare prima una conversione 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 corrispondenza (100, 100) e l'angolo inferiore destro in corrispondenza di (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);

Requisiti

Requisito Valore
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1.h
Libreria D2d1.lib
DLL D2d1.dll

Vedi anche

Panoramica dei pennelli

ID2D1Brush