Apa itu vektor?
Vektor adalah sekumpulan koordinat dari berbagai dimensi. Setiap koordinat dalam suatu vektor mewakili suatu posisi absolut dalam arah ruang dari vektor tersebut.
- Vektor 1-D adalah {1} . Ini bisa berupa, misalnya, posisi di X = 1. Atau waktu t = 1.
- Vektor 2-D adalah {-4,3} . Ini bisa berupa, misalnya, posisi di -4 pada sumbu X, dan 3 pada sumbu Y. Bisa juga dengan suhu (3 derajat) pada posisi (-4 meter) kembali pada sumbu X.
- Vektor 3-D adalah {1,2,3} . Ini bisa berupa posisi dalam ruang 1 sepanjang sumbu X, 2 kembali pada sumbu Y, dan 3 di atas sumbu Z. Atau bisa 1 warna merah, 2 hijau, dan 3 biru. Atau, itu bisa berupa posisi XY ( {1,2} ) pada suatu waktu T ( {3} ).
Perhatikan bahwa dalam semua kasus, kami telah memberi makna pada vektor untuk masalah kami. Meskipun Anda biasanya akan menemukan vektor yang digunakan untuk geometri dalam gim, tidak ada alasan Anda tidak dapat melakukan hal lain dengannya.
Mengapa saya menggunakan vektor?
Pertama, Anda tidak perlu menggunakan vektor. Selama Anda melacak x dan y, atau koordinat apa pun yang Anda pedulikan, dalam beberapa hal Anda baik-baik saja.
Namun, keuntungan menggunakan vektor adalah bahwa mereka secara rapi mewakili hal-hal seperti arah dan posisi, dan juga memiliki beberapa operasi matematika yang ditetapkan pada mereka yang membuat hidup Anda lebih mudah.
Untuk contoh sederhana ini, pertimbangkan produk titik .
Misalkan Anda memiliki sistem radar dalam permainan gaya top-down. Setiap musuh yang muncul di sektor radar (beberapa wedge berbentuk pie dalam 2D) harus mendapatkan titik merah kecil di layar Anda. Jadi, Anda perlu mencari tahu musuh apa yang ada di bagian radar Anda.
Anda bisa menguji apakah musuh ada di dalam segitiga. Anda juga bisa menguji apakah musuh terkandung di persimpangan dua setengah ruang dari pesawat / garis yang mendefinisikan dua sisi sektor radar.
Atau, Anda bisa menggunakan produk titik untuk melakukan pemeriksaan. Begini caranya:
- Buat vektor dari pusat radar ke arah "depan radar". Normalisasikan itu.
- Buat vektor pergi dari pusat radar ke arah objek yang ingin kita periksa visibilitas radar. Normalisasikan itu.
- Ambil titik produk dari dua vektor yang dinormalisasi.
- Ambil arccosine dari produk itu, dan periksa apakah kurang dari setengah sudut lebar radar. Jika ya, buat blip.
Ini sangat berguna, dan juga sekarang memungkinkan Anda dengan mudah memiliki radar yang mengarah ke arah yang berbeda (cukup ubah vektor maju) dan memiliki lebar yang berbeda (cukup ubah sudut lebar radar) - dan Anda dapat menggunakan kembali kode yang sama untuk kasus-kasus tersebut juga !
Kenapa lagi saya menggunakan vektor?
Jika Anda menggunakan 2D, mungkin cara terbaik untuk mencapai efek dan gerakan kompleks (pemintalan, penskalaan, dll.) Adalah dengan menggunakan grafik adegan. Sebuah planet memiliki kapal yang mengorbit, kapal memiliki pesawat tanpa awak yang mengorbit. Perhitungan untuk ini tanpa menggunakan vektor matematika benar-benar jelek.
Dengan matematika vektor, kami mewakili masing-masing sebagai memiliki titik dan matriks transformasi 3x3. Planet menggunakan transformasinya, kapal menggunakan transformasinya dan transformasi planet, dan drone menggunakan transformasinya dan transformasi kapal serta transformasi planet.
Ketika planet ini bergerak, Anda mengubah transformasinya, dan kapal serta drone secara otomatis diposisikan "gratis". Kode yang jauh lebih bersih.
Masih belum yakin.
Vektor juga merupakan representasi asli untuk posisi, geometri, dan gerak yang digunakan oleh hampir semua perpustakaan grafis - dan tentunya OpenGL dan DirectX. Anda tidak mungkin pergi tanpa harus menggunakannya.
Kesimpulan
Vektor adalah alat yang ampuh untuk menulis kode yang jelas yang memecahkan masalah geometri dengan bersih dan elegan.