Condividi tramite


Rivestire una forma con un'immagine

Proprio come le piastrelle possono essere posizionate l'una accanto all'altra per coprire un pavimento, immagini rettangolari possono essere posizionate l'una accanto all'altra per riempire (mattonella) una forma. Per rivestire l'interno di una forma, usare un pennello per texture. Quando si costruisce un oggetto TextureBrush, uno degli argomenti passati al costruttore è l'indirizzo di un oggetto Image . Quando si utilizza il pennello trama per disegnare l'interno di una forma, la forma viene riempita con copie ripetute di questa immagine.

La proprietà modalità di avvolgimento dell'oggetto TextureBrush stabilisce il modo in cui l'immagine viene orientata mentre viene ripetuta in una griglia rettangolare. È possibile fare in modo che tutti i riquadri nella griglia abbiano lo stesso orientamento oppure è possibile capovolgere l'immagine da una posizione della griglia alla successiva. Lo scorrimento può essere orizzontale, verticale o entrambi. Gli esempi seguenti illustrano la tassellazione con diversi tipi di capovolgimento.

Piastrellare un'immagine

Questo esempio usa l'immagine 75 ×75 seguente per affiancare un rettangolo 200 ×200:

illustrazione usata come base di altre illustrazioni in questo argomento: una casa e un albero sullo sfondo e centrato in un rettangolo

Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));

L'illustrazione seguente mostra come il rettangolo viene piastrellato con l'immagine. Si noti che tutti i riquadri hanno lo stesso orientamento; non c'è alcun capovolgimento.

illustrazione che mostra l'immagine di base ripetutamente orizzontalmente e verticalmente in un rettangolo grande

 

Ribaltamento orizzontale di un'immagine durante il piastrellamento

In questo esempio viene usata un'immagine da 75 ×75 per riempire un rettangolo di 200 ×200. La modalità di avvolgimento è impostata per capovolgere l'immagine orizzontalmente.

Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipX);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));

L'illustrazione seguente mostra come l'immagine viene utilizzata per piastrellare il rettangolo. Si noti che quando si passa da un riquadro al successivo in una determinata riga, l'immagine viene capovolta orizzontalmente.

illustrazione che mostra l'immagine di base ripetutamente orizzontalmente, ma le istanze numerate pari vengono invertite orizzontalmente

 

Capovolgere verticalmente un'immagine durante la piastrellatura

In questo esempio viene usata un'immagine da 75 ×75 per riempire un rettangolo di 200 ×200. La modalità di avvolgimento è impostata per capovolgere l'immagine verticalmente.

Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipY);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));

La figura seguente mostra come viene piastrellato il rettangolo con l'immagine. Si noti che quando si passa da un riquadro al successivo in una determinata colonna, l'immagine viene capovolta verticalmente.

illustrazione che mostra ripetutamente l'immagine di base orizzontalmente e verticalmente, ma le righe con numeri pari vengono invertite verticalmente

 

Capovolgimento orizzontale e verticale di un'immagine

In questo esempio viene usata un'immagine da 75 ×75 per piastrellare un rettangolo 200 ×200. La modalità di avvolgimento è impostata per capovolgere l'immagine sia orizzontalmente che verticalmente.

Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipXY);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));

L'illustrazione seguente mostra come il rettangolo viene riempito dall'immagine. Si noti che quando si passa da un riquadro all'altro in una determinata riga, l'immagine viene capovolta orizzontalmente e quando si passa da un riquadro al successivo in una determinata colonna, l'immagine viene capovolta verticalmente.

illustrazione che mostra istanze alternate dell'immagine di base in ogni riga vengono capovolte orizzontalmente e le righe alternate vengono capovolte verticalmente