MathHelper.LerpPrecise Method (Microsoft.Xna.Framework)

Linearly interpolates between two values. This method is a less efficient, more precise version of Lerp(float, float, float). See remarks for more info.

Namespace: Microsoft.Xna.Framework
Assembly: MonoGame.Framework (MonoGame.Framework.dll
  • C#
  • VB
  • F#
public static float LerpPrecise(
	float value1, 
	float value2, 
	float amount

Syntax for VB is not yet implemented.

Syntax for F# is not yet implemented.


Type: System.Single
Source value.
Type: System.Single
Destination value.
Type: System.Single
Value between 0 and 1 indicating the weight of value2.

Return Value

Type: System.Single
Interpolated value.
This method performs the linear interpolation based on the following formula: ((1 - amount) * value1) + (value2 * amount). Passing amount a value of 0 will cause value1 to be returned, a value of 1 will cause value2 to be returned. This method does not have the floating point precision issue that Lerp(float, float, float) has. i.e. If there is a big gap between value1 and value2 in magnitude (e.g. value1=10000000000000000, value2=1), right at the edge of the interpolation range (amount=1), Lerp(float, float, float) will return 0 (whereas it should return 1). This also holds for value1=10^17, value2=10; value1=10^18,value2=10^2... so on. For an in depth explanation of the issue, see below references: Relevant Wikipedia Article: Relevant StackOverflow Answer:
Supported in:

 Windows DirectX Desktop
 Linux Desktop
 Windows OpenGL Desktop