Mam wektor prędkości, w którym znajduje się mój klient i dokąd zmierza, i mam ten sam wektor, który pochodzi z serwera, informując, gdzie powinien być klient. Czasami jest trochę inaczej, więc chcę interpolować moją aktualną pozycję do prawidłowej pozycji serwera.
Czarna strzałka to wektor prędkości klienta, czerwona strzałka to wektor prędkości klienta na serwerze, a niebieska strzałka to ta, którą chcę obliczyć i interpolować.
Jak obliczyć niebieski wektor? Jak mogę interpolować liniowo między nimi?
źródło
Robienie tego zdjęcia:
AB to czerwony wektor od A do B.
Powiedzmy, że P to 25% drogi od A do B. Podstawowym sposobem na dostanie się do P od początku jest
Więc 3/4 A i 1/4 B.
Innym sposobem na znalezienie tego jest stwierdzenie, że wektor 75% „blisko” do A i 25% „blisko” do B. (Wektor, który jest w 100% „blisko” do A, to tylko wektor A).
Więc możesz również znaleźć P jako:
Przy t = 0,75 (75% „blisko” do A)
Tak więc prostą funkcją LERP w C dla klasy Vector3f byłoby:
źródło