Saya memiliki vektor kecepatan di mana klien saya berada dan kemana arahnya, dan saya memiliki vektor yang sama yang berasal dari server yang memberitahukan di mana klien seharusnya berada. Kadang-kadang agak berbeda, jadi saya ingin interpolasi antara posisi saya saat ini ke posisi server yang benar.
Panah hitam adalah vektor kecepatan klien, panah merah adalah vektor kecepatan klien di server dan panah biru adalah salah satu yang ingin saya hitung dan sisipkan ke.
Bagaimana cara menghitung vektor biru? Lalu, bagaimana saya bisa interpolasi linier di antara mereka?
sumber
Mengambil gambar ini:
AB adalah vektor merah dari A ke B.
Katakanlah P adalah 25% dari jalan dari A ke B. Cara dasar untuk sampai ke P dari titik asal adalah
Jadi 3/4 A dan 1/4 B.
Cara lain untuk menemukan itu adalah mengatakan Anda ingin 75% vektor "tutup" ke A, dan 25% "tutup" ke B. (Vektor yang 100% "tutup" ke A hanyalah vektor A.)
Jadi, Anda juga dapat menemukan P sebagai:
Dengan t = 0,75 (untuk mengatakan 75% "tutup" ke A)
Jadi fungsi LERP sederhana dalam C untuk kelas Vector3f adalah:
sumber