Mathfx

(Difference between revisions)

Description

The following snippet provides short functions for floating point numbers. See the usage section for individualized information.

Usage

• Hermite - This method will interpolate while easing in and out at the limits.
• Sinerp - Short for 'sinusoidal interpolation', this method will interpolate while easing around the end, when value is near one.
• Berp - Short for 'boing-like interpolation', this method will first overshoot, then waver back and forth around the end value before coming to a rest.
• Lerp - Short for 'linearly interpolate', this method is equivalent to Unity's Mathf.Lerp, included for comparison.

C# - Mathfx.cs

<csharp>using UnityEngine; using System;

public class Mathfx {

```   public static float Hermite(float start, float end, float value)
{
return Mathf.Lerp(start, end, value * value * (3.0f - 2.0f * value));
}

public static float Sinerp(float start, float end, float value)
{
return Mathf.Lerp(start, end, Mathf.Sin(value * Mathf.PI * 0.5f));
}
```
```   public static float Berp(float start, float end, float value)
{
value = Mathf.Clamp01(value);
value = (Mathf.Sin(value * Mathf.PI * (0.2f + 2.5f * value * value * value)) * Mathf.Pow(1f - value, 2.2f) + value) * (1f + (1.2f * (1f - value)));
return start + (end - start) * value;
}

public static float Lerp(float start, float end, float value)
{
return ((1.0f - value) * start) + (value * end);
}
```

} </csharp>