Bagikan melalui


Cara: Memiringkan Bentuk dengan Gambar

Sama seperti petak peta dapat ditempatkan di samping satu sama lain untuk menutupi lantai, gambar persegi panjang dapat ditempatkan di samping satu sama lain untuk mengisi (ubin) bentuk. Untuk memiringkan interior bentuk, gunakan kuas tekstur. Saat Anda membuat TextureBrush objek, salah satu argumen yang Anda teruskan ke konstruktor adalah Image objek. Ketika Anda menggunakan kuas tekstur untuk melukis interior bentuk, bentuknya diisi dengan salinan berulang gambar ini.

Properti TextureBrush mode bungkus objek menentukan bagaimana gambar berorientasi seperti yang diulang dalam kisi persegi panjang. Anda dapat membuat semua petak peta di kisi memiliki orientasi yang sama, atau Anda dapat membuat gambar membalik dari satu posisi kisi ke posisi berikutnya. Membalik dapat berupa horizontal, vertikal, atau keduanya. Contoh berikut menunjukkan pemetakan dengan berbagai jenis membalik.

Untuk memiringkan gambar

  • Contoh ini menggunakan gambar 75×75 berikut untuk memiringkan persegi panjang 200×200.

The tile image that shows a red house and a tree.

  • Ilustrasi berikut menunjukkan bagaimana persegi panjang diurutkan dengan gambar. Perhatikan bahwa semua petak peta memiliki orientasi yang sama; tidak ada flipping.

A rectangle tiled with the image using the same orientation for all tiles.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Untuk membalik gambar secara horizontal saat ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk mengisi persegi panjang 200×200. Mode bungkus diatur untuk membalik gambar secara horizontal. Ilustrasi berikut menunjukkan bagaimana persegi panjang diurutkan dengan gambar. Perhatikan bahwa saat Anda berpindah dari satu petak peta ke petak berikutnya dalam baris tertentu, gambar dibalik secara horizontal.

A rectangle tiled with the image flipped horizontally.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Untuk membalikkan gambar secara vertikal saat ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk mengisi persegi panjang 200×200. Mode pembungkusan diatur untuk membalik gambar secara vertikal.

    Image image = new Bitmap("HouseAndTree.gif");
    TextureBrush tBrush = new TextureBrush(image);
    Pen blackPen = new Pen(Color.Black);
    tBrush.WrapMode = WrapMode.TileFlipY;
    e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
    e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
    
    Dim image As New Bitmap("HouseAndTree.gif")
    Dim tBrush As New TextureBrush(image)
    Dim blackPen As New Pen(Color.Black)
    tBrush.WrapMode = WrapMode.TileFlipY
    e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
    e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
    
    

Untuk membalik gambar secara horizontal dan vertikal saat ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk memiringkan persegi panjang 200×200. Mode pembungkusan diatur untuk membalik gambar secara horizontal dan vertikal. Ilustrasi berikut menunjukkan bagaimana persegi panjang diurutkan oleh gambar. Perhatikan bahwa saat Anda berpindah dari satu petak peta ke petak berikutnya dalam baris tertentu, gambar dibalik secara horizontal, dan saat Anda berpindah dari satu petak peta ke petak berikutnya di kolom tertentu, gambar dibalik secara vertikal.

A rectangle tiled with the image flipped horizontally and vertically.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Baca juga