fyre/math

数学工具库。

v2.0.7 2024-06-29 01:42 UTC

This package is auto-updated.

Last update: 2024-09-29 02:13:36 UTC


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);