LinearGradientBrush::Metode ScaleTransform (gdiplusbrush.h)
Metode LinearGradientBrush::ScaleTransform memperbarui matriks transformasi kuas saat ini dengan produk itu sendiri dan matriks penskalaan.
Sintaks
Status ScaleTransform(
[in] REAL sx,
[in] REAL sy,
[in] MatrixOrder order
);
Parameter
[in] sx
Jenis: REAL
Angka riil yang menentukan jumlah untuk diskalakan ke arah x.
[in] sy
Jenis: REAL
Angka riil yang menentukan jumlah untuk diskalakan ke arah y.
[in] order
Jenis: MatrixOrder
Opsional. Elemen enumerasi MatrixOrder yang menentukan urutan perkalian. MatrixOrderPrepend menentukan bahwa matriks penskalaan berada di sebelah kiri, dan MatrixOrderAppend menentukan bahwa matriks penskalaan 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 T mewakili terjemahan, dan matriks S mewakili penskalaan. Jika matriks M adalah produk TS, maka matriks M mewakili transformasi komposit: terjemahkan terlebih dahulu, lalu skalakan.
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 sikat gradien linier dan menggunakannya untuk mengisi persegi panjang. Selanjutnya, kode memodifikasi matriks transformasi kuas, menerapkan transformasi komposit, dan kemudian mengisi persegi panjang dengan kuas yang diubah.
VOID Example_ScaleTrans(HDC hdc)
{
Graphics myGraphics(hdc);
LinearGradientBrush linGrBrush(
Rect(0, 0, 80, 40),
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
LinearGradientModeHorizontal);
// Fill a large area with the linear gradient brush (no transformation).
myGraphics.FillRectangle(&linGrBrush, 0, 0, 800, 150);
// Apply a composite transformation: first translate, then scale.
linGrBrush.TranslateTransform(60, 0); // horizontal translation
linGrBrush.ScaleTransform(2, MatrixOrderAppend); // horizontal doubling
// Fill a large area with the transformed linear gradient brush.
myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);
}
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 | gdiplusbrush.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Mengisi Bentuk dengan Sikat Gradien
LinearGradientBrush::MultiplyTransform
LinearGradientBrush::RotateTransform
LinearGradientBrush::TranslateTransform