fyre / math
数学工具库。
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreMath 是一个免费的、开源的 PHP 数学与数字操作库。
目录
安装
使用 Composer
composer require fyre/math
在 PHP 中
use Fyre\Utility\Math;
方法
Abs
获取一个数的绝对值。
$number
是输入的数。
$abs = Math::abs($number);
Acos
获取一个数的反余弦值。
$number
是输入的数。
$acos = Math::acos($number);
Acosh
获取一个数的反双曲余弦值。
$number
是输入的数。
$acosh = Math::acosh($number);
Asin
获取一个数的反正弦值。
$number
是输入的数。
$asin = Math::asin($number);
Asinh
获取一个数的反双曲正弦值。
$number
是输入的数。
$asinh = Math::asinh($number);
Atan
获取一个数的反正切值。
$number
是输入的数。
$atan = Math::atan($number);
Atan2
获取两个数的反正切值。
$x
是表示被除数的数。$y
是表示除数的数。
$atan2 = Math::atan2($x, $y);
Atanh
获取一个数的反双曲正切值。
$number
是输入的数。
$atanh = Math::atanh($number);
二进制转十进制
将一个二进制数转换为十进制。
$binaryString
是二进制字符串。
$decimal = Math::binaryToDecimal($binaryString);
Ceil
向上取整。
$number
是输入的数。
$rounded = Math::ceil($number);
Clamp
限制一个数在最小值和最大值之间。
$number
是输入的数。$min
是表示限制值的最低值的数,默认为 0。$max
是表示限制值的最高值的数,默认为 1。
$clamped = Math::clamp($number, $min, $max);
Clamp Percent
限制一个数在 0 到 100 之间。
$number
是输入的数。
$clamped = Math::clampPercent($number);
转换基数
在基数之间转换一个数。
$number
是输入的数。$fromBase
是表示数字基数的数。$toBase
是表示要转换到的基数的数。
$newNumber = Math::convertBase($number, $fromBase, $toBase);
Cos
获取一个数的余弦值。
$number
是输入的数。
$cos = Math::cos($number);
Cosh
获取一个数的双曲余弦值。
$number
是输入的数。
$cosh = Math::cosh($number);
十进制转二进制
将一个十进制数转换为二进制。
$number
是输入的数。
$binary = Math::decimalToBinary($number);
十进制转十六进制
将一个十进制数转换为十六进制。
$number
是输入的数。
$hex = Math::decimalToHex($number);
十进制转八进制
将一个十进制数转换为八进制。
$number
是输入的数。
$octal = Math::decimalToOctal($number);
度转弧度
将度数转换为弧度。
$number
是输入的数。
$radians = Math::degreesToRadians($number);
距离
计算两点之间的距离。
$x1
是表示第一个 X 坐标的数。$y1
是表示第一个 Y 坐标的数。$x2
是表示第二个 X 坐标的数。$y2
是表示第二个 Y 坐标的数。
$distance = Math::dist($x1, $y1, $x2, $y2);
Exp
计算 e 的指数。
$number
是输入的数。
$exp = Math::exp($number);
Exp Minus 1
计算 e 的指数减 1。
$number
是输入的数。
$expMinus1 = Math::expMinus1($number);
Floor
向下取整。
$number
是输入的数。
$rounded = Math::floor($number);
Fmod
计算一个数除以一个除数的余数。
$number
是输入的数。$divisor
是表示除数的数。
$modulo = Math::fmod($number, $divisor);
十六进制转十进制
将一个十六进制数转换为十进制。
$hexString
是十六进制字符串。
$decimal = Math::hexToDecimal($hexString);
Hypot
计算点的长度。
$x
是表示 X 坐标的数。$y
是表示 Y 坐标的数。
$length = Math::hypot($x, $y);
Inverse Linear Interpolation
从一个值到另一个值进行逆线性插值。
$v1
是表示范围最小值的数。$v2
是表示范围最大值的数。$value
是表示要逆插值的数的值。
$amount = Math::inverseLerp($v1, $v2, $value);
Is Numeric
确定一个值是否为数值。
$value
是要测试的值。
$isNumeric = Math::isNumeric($value);
Linear Interpolation
从一个值到另一个值进行线性插值。
$v1
是表示范围最小值的数。$v2
是表示范围最大值的数。$amount
是表示插值数量的数。
$value = Math::lerp($v1, $v2, $amount);
Log
计算对数。
$number
是输入的数。$base
代表对数底数的一个数字,默认值为 E。
$log = Math::log($number, $base);
10的对数
计算10为底的对数。
$number
是输入的数。
$log = Math::log10($number);
对数加1
计算一个数字加1的对数。
$number
是输入的数。
$log = Math::logPlus1($number);
映射
将一个值从一个范围映射到另一个范围。
$number
是输入的数。$fromMin
代表当前范围的最小值。$fromMax
代表当前范围的最大值。$toMin
代表目标范围的最小值。$toMax
代表目标范围的最大值。
$mapped = Math::map($number, $fromMin, $fromMax, $toMin, $toMax);
最大值
查找最高值。
此方法所有传入的参数都将进行比较。
$highest = Math::max(...$numbers);
最小值
查找最低值。
此方法所有传入的参数都将进行比较。
$lowest = Math::min(...$numbers);
八进制转十进制
将一个八进制数字转换为十进制。
$octalString
是八进制字符串。
$decimal = Math::octalToDecimal($octalString);
幂
将一个数字提升为指数的幂。
$number
是输入的数。$exponent
代表指数。
$pow = Math::pow($number, $exponent);
乘积
计算值的乘积。
此方法所有传入的参数都将相乘。
$product = Math::product(...$numbers);
弧度转角度
将弧度数转换为角度。
$number
是输入的数。
$degrees = Math::radiansToDegrees($number);
随机
返回一个随机浮点数。
$a
代表最小值(包含)。$b
代表最大值(不包含)。
如果省略 $b
,此函数将返回介于0(包含)和 $a
(不包含)之间的随机数。
如果两个参数都省略,此函数将返回介于0(包含)和1(不包含)之间的随机数。
$random = Math::random($a, $b);
随机整型
返回一个随机整数。
$a
代表最小值(包含)。$b
代表最大值(不包含)。
如果省略 $b
,此函数将返回介于0(包含)和 $a
(不包含)之间的随机数。
$randomInt = Math::randomInt($a, $b);
四舍五入
四舍五入一个数字。
$number
是输入的数。$precision
代表使用的十进制位数,默认为 0。$mode
代表使用的舍入模式,默认为 Math::ROUND_HALF_UP。
$rounded = Math::round($number, $precision, $mode);
正弦
获取一个数字的正弦值。
$number
是输入的数。
$sin = Math::sin($number);
双曲正弦
获取一个数字的双曲正弦值。
$number
是输入的数。
$sinh = Math::sinh($number);
平方根
获取一个数字的平方根。
$number
是输入的数。
$sqrt = Math::sqrt($number);
求和
计算值的总和。
此方法所有传入的参数都将相加。
$sum = Math::sum(...$numbers);
正切
获取一个数字的正切值。
$number
是输入的数。
$tan = Math::tan($number);
双曲正切
获取一个数字的双曲正切值。
$number
是输入的数。
$tanh = Math::tanh($number);
到步长
将一个数字四舍五入到指定的步长。
$number
是输入的数。$step
代表最小步长,默认为 0.01。
$toStep = Math::toStep($number, $step);