Eu tenho um vetor de velocidade em que meu cliente está e para onde está indo, e eu tenho o mesmo vetor que vem do servidor informando onde o cliente deve estar. Às vezes é um pouco diferente, então eu quero interpolar entre minha posição atual e a posição correta do servidor.
A seta preta é o vetor de velocidade do cliente, a seta vermelha é o vetor de velocidade do cliente no servidor e a seta azul é a que eu quero calcular e interpolar.
Como calculo o vetor azul? Então, como posso interpolar linearmente entre eles?
fonte
Tirando esta foto:
AB é o vetor vermelho de A a B.
Digamos que P seja 25% do caminho de A a B. A maneira básica de chegar a P desde a origem é
Então 3/4 A e 1/4 B.
Outra maneira de descobrir isso é dizer que você quer um vetor 75% "próximo" de A e 25% "próximo" de B. (Um vetor 100% "próximo" de A é apenas o vetor A.)
Então você também seria capaz de encontrar P como:
Com t = 0,75 (para dizer 75% "próximo" de A)
Portanto, uma função LERP simples em C para uma classe Vector3f seria:
fonte