PathGradientBrush::Metode MultiplyTransform (gdipluspath.h)
Metode PathGradientBrush::MultiplyTransform memperbarui matriks transformasi kuas dengan produk itu sendiri dan matriks lain.
Sintaks
Status MultiplyTransform(
[in] const Matrix *matrix,
[in] MatrixOrder order
);
Parameter
[in] matrix
Jenis: Matriks*
Arahkan ke matriks yang akan dikalikan dengan matriks transformasi kuas saat ini.
[in] order
Jenis: MatrixOrder
Opsional. Elemen enumerasi MatrixOrder yang menentukan urutan perkalian. MatrixOrderPrepend menentukan bahwa matriks yang diteruskan berada di sebelah kiri, dan MatrixOrderAppend menentukan bahwa matriks yang diteruskan berada di sebelah kanan. Nilai defaultnya adalah MatrixOrderPrepend.
Nilai kembali
Jenis: Status
Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .
Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .
Keterangan
Satu matriks 3 ×3 dapat menyimpan urutan transformasi affine apa pun. Jika Anda memiliki beberapa 3 matriks ×3, yang masing-masing mewakili transformasi afin, produk matriks tersebut adalah matriks 3 ×3 tunggal yang mewakili seluruh urutan transformasi. Transformasi yang diwakili oleh produk tersebut disebut transformasi komposit. Misalnya, misalkan matriks R mewakili rotasi dan matriks T mewakili terjemahan. Jika matriks M adalah RT produk, maka matriks M mewakili transformasi komposit: putar terlebih dahulu, lalu terjemahkan.
Urutan perkalian matriks penting. Secara umum, RT produk matriks tidak sama dengan produk matriks TR. Dalam contoh yang diberikan dalam paragraf sebelumnya, transformasi komposit yang diwakili oleh RT (putar pertama, lalu terjemahkan) tidak sama dengan transformasi komposit yang diwakili oleh TR (terjemahkan pertama, lalu putar).
Contoh
Contoh berikut membuat objek PathGradientBrush berdasarkan jalur segitiga. Kode memanggil metode PathGradientBrush::ScaleTransform dari objek PathGradientBrush untuk mengisi matriks transformasi kuas dengan elemen yang mewakili penskalaan horizontal dengan faktor 3. Kemudian kode memanggil metode PathGradientBrush::MultiplyTransform dari objek PathGradientBrush yang sama untuk mengalikan matriks transformasi kuas yang ada dengan matriks yang mewakili terjemahan (10 kanan, 30 ke bawah). Argumen MatrixOrderAppend menunjukkan bahwa perkalian dilakukan dengan matriks terjemahan di sebelah kanan.
Setelah perkalian, matriks transformasi kuas mewakili transformasi komposit: skala pertama, lalu terjemahkan. Transformasi komposit tersebut diterapkan pada jalur batas kuas selama panggilan ke FillRectangle, sehingga merupakan area di dalam jalur yang diubah yang akan dicat.
VOID Example_MultiplyTransform(HDC hdc)
{
Graphics graphics(hdc);
Point pts[] = {Point(0, 0), Point(50, 0), Point(50, 50)};
// Translate 10 right, 30 down.
Matrix matrix(1.0f, 0.0f, 0.0f, 1.0f, 10.0f, 30.0f);
PathGradientBrush pthGrBrush(pts, 3);
pthGrBrush.ScaleTransform(3.0f, 1.0f);
pthGrBrush.MultiplyTransform(&matrix, MatrixOrderAppend);
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdipluspath.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Mengisi Bentuk dengan Gradien Warna
Representasi Transformasi Matriks
PathGradientBrush::GetTransform
PathGradientBrush::ResetTransform
PathGradientBrush::RotateTransform
PathGradientBrush::ScaleTransform
PathGradientBrush::SetTransform
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk