Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De implementatie van Vector2.Lerp(Vector2, Vector2, Single) en Vector4.Lerp(Vector4, Vector4, Single) is gewijzigd om correct rekening te houden met een afrondingsfout voor drijvende komma's.
Beschrijving wijzigen
Eerder, Vector2.Lerp(Vector2, Vector2, Single) en Vector4.Lerp(Vector4, Vector4, Single) werden geïmplementeerd als value1 + (value2 - value1) * amount. Vanwege een drijvende-komma-afrondingsfout retourneert dit algoritme echter niet altijd value2 wanneer amount .1.0f
In .NET 5 en hoger gebruikt de implementatie hetzelfde algoritme als Vector3.Lerp(Vector3, Vector3, Single).(value1 * (1.0f - amount)) + (value2 * amount) Dit algoritme verwerkt correct de afrondingsfout. Wanneer amount1.0f is, is het resultaat precies value2. Met het bijgewerkte algoritme kan het ook vrij worden geoptimaliseerd door MathF.FusedMultiplyAdd te gebruiken zodra deze beschikbaar is.
Geïntroduceerde versie
5,0
Aanbevolen actie
Er is geen actie nodig. Als u echter het oude gedrag wilt behouden, kunt u uw eigen Lerp functie implementeren die gebruikmaakt van het vorige algoritme van value1 + (value2 - value1) * amount.