Ich habe einen Geschwindigkeitsvektor, wo sich mein Client befindet und wohin er geht, und ich habe denselben Vektor, der vom Server kommt und angibt, wo sich der Client befinden soll. Manchmal ist es ein bisschen anders, also möchte ich zwischen meiner aktuellen Position und der korrekten Position des Servers interpolieren.
Der schwarze Pfeil ist der Client-Geschwindigkeitsvektor, der rote Pfeil ist der Client-Geschwindigkeitsvektor auf dem Server und der blaue Pfeil ist derjenige, den ich berechnen und interpolieren möchte.
Wie berechne ich den blauen Vektor? Wie kann ich dann zwischen ihnen linear interpolieren?
quelle
Aufnahme dieses Bildes:
AB ist der rote Vektor von A nach B.
Sagen wir, P ist 25% des Weges von A nach B. Der grundlegende Weg, um P vom Ursprung aus zu erreichen, ist
Also 3/4 A und 1/4 B.
Eine andere Möglichkeit, dies herauszufinden, besteht darin, dass Sie einen Vektor von 75% "nahe" an A und 25% "nahe" an B wünschen. (Ein Vektor, der 100% "nahe" an A ist, ist nur der A-Vektor.)
Sie finden also auch P als:
Mit t = 0,75 (um 75% "nah" an A zu sagen)
Eine einfache LERP-Funktion in C für eine Vector3f-Klasse wäre also:
quelle