Bagikan melalui


LinearGradientBrush::Metode TranslateTransform (gdiplusbrush.h)

Metode LinearGradientBrush::TranslateTransform memperbarui matriks transformasi kuas saat ini dengan produk itu sendiri dan matriks terjemahan.

Sintaks

Status TranslateTransform(
  [in] REAL        dx,
  [in] REAL        dy,
  [in] MatrixOrder order
);

Parameter

[in] dx

Jenis: REAL

Angka riil yang menentukan komponen horizontal terjemahan.

[in] dy

Jenis: REAL

Angka riil yang menentukan komponen vertikal terjemahan.

[in] order

Jenis: MatrixOrder

Opsional. Elemen enumerasi MatrixOrder yang menentukan urutan perkalian. MatrixOrderPrepend menentukan bahwa matriks terjemahan berada di sebelah kiri, dan MatrixOrderAppend menentukan bahwa matriks terjemahan 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 S mewakili penskalaan, dan matriks T mewakili terjemahan. Jika matriks M adalah ST produk, maka matriks M mewakili transformasi komposit: skala pertama, 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 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_TranslateTrans(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 scale, then translate.
   linGrBrush.ScaleTransform(2, 1);                     // horizontal doubling
   linGrBrush.TranslateTransform(30, MatrixOrderAppend);// translation

   // 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

Kuas dan Bentuk Terisi

Mengisi Bentuk dengan Sikat Gradien

LinearGradientBrush

LinearGradientBrush::MultiplyTransform

LinearGradientBrush::ResetTransform

LinearGradientBrush::RotateTransform

LinearGradientBrush::ScaleTransform

Matrix

Representasi Transformasi Matriks

MatrixOrder

Transformasi