// Quadratic Bezier Interpolation with Smooth Ease public static FInt QuadBezierEaseBothDir(FInt p0, FInt p1, FInt p2, FInt weight) { weight = FInt.Sin(weight * FInt.PI * 2) / 2 + FInt.Create(0.5); FInt k = 1 - weight; return((k * k * p0) + (2 * (1 - weight) * weight * p1) + (weight * weight * p2)); }
public static FInt GetYOffsetFromRotation(FInt radian, int xOffset, int yOffset) { return(-yOffset *FInt.Cos(radian) + xOffset * FInt.Sin(radian)); }
public static FInt GetYFromRotation(FInt radian, FInt distance) { return(distance * FInt.Sin(radian)); }
//// Calculate a smooth interpolation percent between the `min` and `max` //static getSmoothStepPercent( value: number, min: number, max: number ): number { // value = (value - min) / (max - min); // return value * value * (3 - 2 * value); //} //static getSmootherStepPercent( value: number, min: number, max: number ): number { // value = Math.max(0, Math.min(1, (value - min) / (max - min))); // return value * value * value * (value * (value * 6 - 15) + 10); //} // Ease a value back and forth between two values. public static FInt EaseBothDir(FInt val1, FInt val2, FInt weight) { return(val1 + FInt.Abs(FInt.Sin((weight + FInt.Create(0.75)) * FInt.PI * 2) / 2 + FInt.Create(0.5)) * (val2 - val1)); }