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) * amount
uygulanıyordu. Ancak kayan nokta yuvarlama hatası nedeniyle bu algoritma her zaman olduğunda amount
1.0f
dö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 amount
1.0f
, sonuç tam olarak value2
olur. 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
Önerilen eylem
Eyleme gerek yoktur. Ancak, eski davranışı korumak istiyorsanız, önceki algoritmasını value1 + (value2 - value1) * amount
kullanan kendi Lerp
işlevinizi uygulayabilirsiniz.
Etkilenen API’ler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin