1*4cadd4f8SNickeau<?php 2*4cadd4f8SNickeau 3*4cadd4f8SNickeau 4*4cadd4f8SNickeaunamespace ComboStrap; 5*4cadd4f8SNickeau 6*4cadd4f8SNickeau 7*4cadd4f8SNickeauclass Math 8*4cadd4f8SNickeau{ 9*4cadd4f8SNickeau 10*4cadd4f8SNickeau 11*4cadd4f8SNickeau /** 12*4cadd4f8SNickeau * Linear interpolation 13*4cadd4f8SNickeau * @param $x 14*4cadd4f8SNickeau * @param $y 15*4cadd4f8SNickeau * @param $weight 16*4cadd4f8SNickeau * @return float 17*4cadd4f8SNickeau */ 18*4cadd4f8SNickeau public static function unlerp($x, $y, $weight): float 19*4cadd4f8SNickeau { 20*4cadd4f8SNickeau $x2 = ($weight / 100) * $x; 21*4cadd4f8SNickeau return ($y - $x2) / (1 - $weight / 100); 22*4cadd4f8SNickeau } 23*4cadd4f8SNickeau 24*4cadd4f8SNickeau /** 25*4cadd4f8SNickeau * Linear interpolation back if x and weight are the same 26*4cadd4f8SNickeau * @param $x 27*4cadd4f8SNickeau * @param $y 28*4cadd4f8SNickeau * @param $weight 29*4cadd4f8SNickeau * @return float|int 30*4cadd4f8SNickeau */ 31*4cadd4f8SNickeau public static function lerp($x, $y, $weight) 32*4cadd4f8SNickeau { 33*4cadd4f8SNickeau 34*4cadd4f8SNickeau $X = ($weight / 100) * $x; 35*4cadd4f8SNickeau $Y = (1 - $weight / 100) * $y; 36*4cadd4f8SNickeau return $X + $Y; 37*4cadd4f8SNickeau 38*4cadd4f8SNickeau } 39*4cadd4f8SNickeau} 40