Baca dalam bahasa Inggris

Bagikan melalui


Terjemahan

Beberapa aplikasi menerjemahkan (atau menggeser) objek yang digambar di area klien. dengan memanggil fungsi SetWorldTransform untuk mengatur ruang dunia yang sesuai ke transformasi ruang halaman. Fungsi SetWorldTransform menerima penunjuk ke struktur XFORM yang berisi nilai yang sesuai. Anggota eDx dan eDy XFORM menentukan komponen terjemahan horizontal dan vertikal.

Ketika terjemahan terjadi, setiap titik dalam objek digeser secara vertikal, horizontal, atau keduanya, dengan jumlah yang ditentukan. Ilustrasi berikut menunjukkan persegi panjang 20 dengan 20 unit yang diterjemahkan ke kanan oleh 10 unit saat disalin dari ruang koordinat dunia ke ruang koordinat halaman.

ilustrasi memperlihatkan persegi panjang dalam satu posisi di ruang dunia, dan dalam posisi yang berbeda di ruang halaman

Dalam ilustrasi sebelumnya, koordinat x dari setiap titik dalam persegi panjang adalah 10 unit yang lebih besar dari koordinat x asli.

Terjemahan horizontal dapat diwakili oleh algoritma berikut.

x' = x + Dx 

Di mana x' adalah koordinat x baru, x adalah koordinat x asli, dan Dx adalah jarak horizontal yang dipindahkan.

Terjemahan vertikal dapat diwakili oleh algoritma berikut.

y' = y + Dy 

Di mana y' adalah y-koordinat baru, y adalah asli y-koordinat, dan Dy adalah jarak vertikal dipindahkan.

Transformasi terjemahan horizontal dan vertikal dapat digabungkan ke dalam satu operasi dengan menggunakan matriks 3-by-3.

                      |1   0   0| 
|x' y' 1| = |x y 1| * |0   1   0| 
                      |Dx  Dy  1| 

(Aturan status perkalian matriks bahwa jumlah baris dalam satu matriks harus sama dengan jumlah kolom di kolom lainnya. Bilangan bulat 1 dalam matriks |x y 1| adalah tempat penampung yang ditambahkan untuk memenuhi persyaratan ini.)

Matriks 3 demi 3 yang menghasilkan transformasi terjemahan yang diilustrasikan berisi nilai berikut.

|1  0  0| 
|0  1  0| 
|10 0  1|