Tengo un vector de velocidad donde está mi cliente y hacia dónde va, y tengo el mismo vector que proviene del servidor que indica dónde debe estar el cliente. A veces es un poco diferente, por lo que quiero interpolar entre mi posición actual y la posición correcta del servidor.
La flecha negra es el vector de velocidad del cliente, la flecha roja es el vector de velocidad del cliente en el servidor y la flecha azul es la que quiero calcular e interpolar.
¿Cómo calculo el vector azul? Entonces, ¿cómo puedo interpolar linealmente entre ellos?
fuente
Tomando esta foto:
AB es el vector rojo de A a B.
Digamos que P es el 25% del camino de A a B. La forma básica de llegar a P desde el origen es
Entonces 3/4 A y 1/4 B.
Otra forma de encontrar eso es decir que quiere un vector que esté 75% "cerca" de A y 25% "cerca" de B. (Un vector que está 100% "cerca" de A es solo el vector A).
Entonces también podría encontrar P como:
Con t = 0.75 (para decir 75% "cerca" de A)
Entonces, una función LERP simple en C para una clase Vector3f sería:
fuente