Aracılığıyla paylaş


Vector2.Lerp ve Vector4.Lerp için davranış değişikliği

ve uygulaması, kayan Vector2.Lerp(Vector2, Vector2, Single)Vector4.Lerp(Vector4, Vector4, Single) nokta yuvarlama hatasını doğru şekilde hesaba eklemek için değiştirildi.

Açıklama değiştirildi

Vector2.Lerp(Vector2, Vector2, Single) Daha önce ve Vector4.Lerp(Vector4, Vector4, Single) olarak value1 + (value2 - value1) * amountuygulanıyordu. Ancak kayan nokta yuvarlama hatası nedeniyle bu algoritma her zaman olduğunda amount1.0fdöndürülmüyorvalue2.

.NET 5 ve sonraki sürümlerde, uygulama ile aynı algoritmayı Vector3.Lerp(Vector3, Vector3, Single)kullanır.(value1 * (1.0f - amount)) + (value2 * amount) Bu algoritma yuvarlama hatasını doğru şekilde hesaplar. Şimdi, olduğunda amount1.0f, sonuç tam olarak value2olur. Güncelleştirilmiş algoritma, kullanılabilir olduğunda kullanarak MathF.FusedMultiplyAdd algoritmanın serbestçe iyileştirilmesini de sağlar.

Sürüm kullanıma sunulmuştur

5.0

Eyleme gerek yoktur. Ancak, eski davranışı korumak istiyorsanız, önceki algoritmasını value1 + (value2 - value1) * amountkullanan kendi Lerp işlevinizi uygulayabilirsiniz.

Etkilenen API’ler