Condividi tramite


Metodo PathGradientBrush::SetTransform (gdipluspath.h)

Il metodo PathGradientBrush::SetTransform imposta la matrice di trasformazione del pennello sfumatura del percorso.

Sintassi

Status SetTransform(
  [in] const Matrix *matrix
);

Parametri

[in] matrix

Tipo: matrice* const

Puntatore a un oggetto Matrix che specifica la matrice di trasformazione.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Un oggetto PathGradientBrush ha un oggetto GraphicsPath che funge da percorso limite per il pennello. Quando si disegna con un pennello sfumatura percorso, viene riempita solo l'area all'interno del percorso limite. Se la matrice di trasformazione del pennello è impostata per rappresentare qualsiasi trasformazione diversa dall'identità, il percorso limite viene trasformato in base a tale matrice durante il rendering e viene riempita solo l'area all'interno del percorso trasformato.

La trasformazione si applica solo durante il rendering. Il percorso limite archiviato dall'oggetto PathGradientBrush non viene modificato dal metodo PathGradientBrush::SetTransform .

Esempio

Nell'esempio seguente viene creato un oggetto PathGradientBrush basato su un percorso triangolare. Il metodo Graphics::FillRectangle usa il pennello sfumatura del percorso per disegnare un rettangolo contenente il percorso triangolare. Successivamente, il codice crea un oggetto Matrix che rappresenta una trasformazione composita (ruota, quindi converte) e passa l'indirizzo dell'oggetto Matrix al metodo PathGradientBrush::SetTransform dell'oggetto PathGradientBrush . Il codice chiama FillRectangle una seconda volta per disegnare lo stesso rettangolo usando il pennello sfumatura del percorso trasformato.

VOID Example_SetTransform(HDC hdc)
{
   Graphics graphics(hdc);

   Point pts[] = {
      Point(0, 0), 
      Point(100, 0), 
      Point(100, 100)};

   Color cols[] = {
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 255, 0),  // green
      Color(255, 0, 0, 0)};   // black

   INT count = 3;
   PathGradientBrush pthGrBrush(pts, 3);
   pthGrBrush.SetSurroundColors(cols, &count);

   // Fill an area with the path gradient brush (no transformation).
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);

   // Set the transformation for the brush (rotate, then translate).
   Matrix matrix(0.0f, 1.0f, -1.0f, 0.0f, 150.0f, 60.0f);
   pthGrBrush.SetTransform(&matrix);
   
   // Fill the same area with the transformed path gradient brush.
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);  
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdipluspath.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Pennelli e forme piene

Creazione di una sfumatura di percorso

Riempimento di una forma con sfumatura di colore

GraphicsPath

PathGradientBrush

PathGradientBrush::GetTransform

PathGradientBrush::MultipliTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::ScaleTransform

PathGradientBrush::TranslateTransform