ID2D1Brush::Metode SetTransform

Mengatur transformasi yang diterapkan ke kuas.

Daftar kelebihan beban

Metode Description
SetTransform(D2D1_MATRIX_3X2_F&) Mengatur transformasi yang diterapkan ke kuas.
SetTransform(D2D1_MATRIX_3X2_F*) Mengatur transformasi yang diterapkan ke kuas.

Komentar

Ketika Anda melukis dengan kuas, itu melukis di ruang koordinat target render. Kuas tidak secara otomatis memposisikan diri untuk menyelaraskan dengan objek yang dicat; secara default, mereka mulai melukis di asal (0, 0) dari target render.

Anda dapat "memindahkan" gradien yang ditentukan oleh ID2D1LinearGradientBrush ke area target dengan mengatur titik awal dan titik akhirnya. Demikian juga, Anda dapat memindahkan gradien yang ditentukan oleh ID2D1RadialGradientBrush dengan mengubah pusat dan radiinya.

Untuk menyelaraskan konten ID2D1BitmapBrush ke area yang dicat, Anda dapat menggunakan metode SetTransform untuk menerjemahkan bitmap ke lokasi yang diinginkan. Transformasi ini hanya memengaruhi kuas; ini tidak memengaruhi konten lain yang digambar oleh target render.

Ilustrasi berikut menunjukkan efek menggunakan ID2D1BitmapBrush untuk mengisi persegi panjang yang terletak di (100, 100). Ilustrasi di ilustrasi kiri menunjukkan hasil mengisi persegi panjang tanpa mengubah kuas: bitmap digambar pada asal target render. Akibatnya, hanya sebagian bitmap yang muncul di persegi panjang.

Ilustrasi di sebelah kanan menunjukkan hasil transformasi ID2D1BitmapBrush sehingga kontennya digeser 50 piksel ke kanan dan 50 piksel ke bawah. Bitmap sekarang mengisi persegi panjang.

ilustrasi dua kotak, satu dicat dengan bitmap tanpa kuas yang diubah dan satu dicat dengan kuas yang diubah

Examples

Contoh kode berikut menunjukkan cara membuat transformasi yang diperlihatkan dalam diagram yang tepat dalam ilustrasi sebelumnya. Pertama-tama terapkan terjemahan ke ID2D1BitmapBrush, pindahkan sikat 50 piksel ke kanan di sepanjang sumbu x dan 50 piksel di sepanjang sumbu y. Kemudian gunakan ID2D1BitmapBrush untuk mengisi persegi panjang yang memiliki sudut kiri atas di (100, 100) dan sudut kanan bawah 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);

Persyaratan

Persyaratan Nilai
Header
D2d1_1.h (termasuk D2d1.h)
Library
D2d1.lib
DLL
D2d1.dll

Baca juga

Gambaran Umum Kuas

ID2D1Brush