Inilah yang disampaikan oleh dosen saya dalam kursus:
Kami hanya mempertimbangkan 4 * 4 matriks. Ini digunakan untuk memutar, skala atau menerjemahkan objek (atau kombinasi dari operasi ini). Matriks juga digunakan kemudian dalam implementasi model kamera virtual. Jika Anda tidak tahu perbedaan antara transformasi vektor dan transformasi titik, cari.
Sepertinya saya tidak dapat menemukan jawaban dan membuat akun untuk situs web ini hanya untuk pertanyaan ini.
Jawaban:
Inilah jawaban sederhana.
Dalam 4D, untuk dapat mengalikannya dengan matriks 4x4, vektor direpresentasikan sebagai (x, y, z, 0) dan titik direpresentasikan sebagai (x, y, z, 1).
Karena baris ke-4 dari matriks 4x4 mewakili terjemahan dari matriks, representasi di atas membuatnya sehingga titik dipengaruhi oleh terjemahan, tetapi vektor tidak.
Baik vektor dan titik dipengaruhi oleh rotasi, penskalaan, dll.
Peringatan:
Ada diskusi yang lebih dalam yang bisa didapat jika Anda mengharapkan vektor memiliki properti tertentu. Misalnya, jika Anda mengubah normal segitiga dengan matriks yang sama Anda mengubah simpul segitiga, kemungkinan tidak akan benar-benar menjadi vektor normal segitiga itu lagi. Ini karena vektor normal memiliki semacam hubungan terbalik dengan simpul dari mana mereka dihitung.
sumber
Dari apa yang saya pelajari, karena saya juga seorang mahasiswa, adalah bahwa Anda ingin bekerja dengan matriks untuk rotasi mengobati, scaling dan terjemahan dengan cara yang sama, yaitu mengalikan dengan matriks (yaitu, a 4 × 4 matriks).4 × 4 4 × 4
Ingat bahwa tanpa ini matriks, terjemahan akan diwakili dengan menjumlahkan dengan vektor, sedangkan rotasi dan skala yang diwakili menggunakan perkalian dengan masing-masing vektor dan faktor skalar.4 × 4
Sekarang pertanyaannya adalah: bagaimana kita beralih dari sistem koordinat 3D ke sistem 4D ? Jawabannya adalah " koordinat homogen ".
Jadi apa maksudnya? Kami membangun matriks untuk mewakili rotasi, penskalaan dan terjemahan, sehingga kami hanya menggunakan perkalian matriks untuk mewakili transformasi (misalnya, rotasi, penskalaan, dll). Bagaimana kami membuatnya secara individual, ini lebih spesifik, tetapi Anda dapat melihatnya di web.4 × 4
Pada titik ini, kita memiliki matriks dan 3D vektor, tidak berguna lagi, karena Anda tidak bisa kalikan 4 × 4 matriks dan 3 D vektor, karena dimensi tidak cocok. Itu sebabnya, ketika kami bekerja dengan koordinat homegeneous, kami juga perlu mengubah titik 3D kami menjadi 4D yang sesuai.4 × 4 4 × 4 3 D
Bagaimana kita melakukannya?
Kami membedakan antara vektor arah dan posisi . Vektor arah, seperti namanya, memiliki arah di mana mereka menunjuk; kami juga peduli dengan panjangnya, tetapi mereka tidak terpengaruh oleh terjemahan, karena kami tidak peduli dengan posisi mereka. Vektor posisi (atau hanya "poin") dapat diterjemahkan atau dipindahkan; mereka biasanya diwakili sehubungan dengan asal, yaitu sebagai vektor dari asal ke titik itu sendiri.
sumber
Jika Anda mencari definisi vektor dan titik, maka vektor tersebut adalah:
Dan intinya adalah:
Jadi Anda bisa mengatakan bahwa vektor adalah arah dengan skala, dan titik adalah lokasi.
Jadi, jika Anda mengubah vektor Anda hanya memutar dan skala itu. Dengan sebuah titik, Anda juga menerjemahkannya (rotasi dan penskalaan titik berada di sekitar titik asal, karena titik tersebut hanya merupakan lokasi titik itu sendiri tidak dapat diputar).
Sebagian besar vektor dan titik dimasukkan ke dalam wadah yang sama, vektor dengan 4 komponen. Satu-satunya perbedaan adalah komponen w. Jika komponen w adalah 0, maka itu adalah arah. Jika 1 maka vektor adalah sebuah titik.
Alasannya dapat ditemukan dalam matriks itu sendiri. Itu menggunakan cara Anda mengalikan vektor dengan 4 komponen dengan matriks 4x4. Jika Anda tidak tahu cara kerjanya, saya sarankan google cepat.
Seperti yang Anda lihat, jika komponen terakhir adalah 0, maka Anda memiliki perkalian dengan 0 dan karena itu hasilnya adalah 0 dan tidak ada terjemahan.
Ini membuatnya mudah dalam grafik komputer dengan objek poligon. Anda memiliki matriks transformasi yang sama untuk mengubah posisi tetapi juga normal. Karena normalnya memiliki komponen w ditetapkan ke 0 dan komponen posisi w adalah 1, normalnya hanya diputar (dan juga diskalakan yang dapat menyebabkan beberapa hal aneh, sehingga sebagian besar waktu normal dinormalisasi setelah itu. t sebenarnya merekomendasikan untuk menggunakan matriks yang sama untuk posisi dan rotasi karena hal-hal aneh! Lihatlah komentar @JarkkoL.) dan posisinya diterjemahkan (dan diputar dan diskalakan di sekitar titik asal).
Semoga saya tidak melakukan kesalahan: P, dan ini membantu Anda!
sumber