Math

数学函数。

Members

(static, constant) DEGREES_PER_RADIAN : Number

以弧度表示的度数。
Default Value: 180.0 / Math.PI

(static, constant) EPSILON1 : Number

0.1条

(static, constant) EPSILON2 : Number

0.01分

(static, constant) EPSILON3 : Number

0.001美元

(static, constant) EPSILON4 : Number

0.0001美元

(static, constant) EPSILON5 : Number

0.00001个

(static, constant) EPSILON6 : Number

0.000001个

(static, constant) EPSILON7 : Number

0.0000001美元

(static, constant) EPSILON8 : Number

0.00000001美元

(static, constant) EPSILON9 : Number

0.00000001美元

(static, constant) EPSILON10 : Number

0.00000000001美元

(static, constant) EPSILON11 : Number

0.00000000001

(static, constant) EPSILON12 : Number

0.00000000001个

(static, constant) EPSILON13 : Number

0.000000000001

(static, constant) EPSILON14 : Number

0.000000000001

(static, constant) EPSILON15 : Number

0.0000000000001

(static, constant) EPSILON16 : Number

0.0000000000001美元

(static, constant) EPSILON17 : Number

0.0000000000000001

(static, constant) EPSILON18 : Number

0.00000000000000001

(static, constant) EPSILON19 : Number

0.000000000001

(static, constant) EPSILON20 : Number

0.000000000000000001

(static, constant) EPSILON21 : Number

0.000000000000000001

(static, constant) FOUR_GIGABYTES : Number

4*1024*1024*1024

(static, constant) GRAVITATIONALPARAMETER : Number

根据wgs84模型3.986004418e14,地球的重力参数(单位:米/平方秒)

(static, constant) LUNAR_RADIUS : Number

根据“IAU/IAG行星和卫星的地图坐标和旋转要素工作组的报告:2000”,天体力学82:83-110,2002年,月球的平均半径。

(static, constant) ONE_OVER_PI : Number

1个/pi

(static, constant) ONE_OVER_TWO_PI : Number

1/2磅

(static, constant) PI : Number

圆周率

(static, constant) PI_OVER_FOUR : Number

π/4

(static, constant) PI_OVER_SIX : Number

圆周率/6

(static, constant) PI_OVER_THREE : Number

π/3

(static, constant) PI_OVER_TWO : Number

π/2

(static, constant) RADIANS_PER_ARCSECOND : Number

弧秒中的弧度数。
Default Value: BMMath.RADIANS_PER_DEGREE / 3600.0

(static, constant) RADIANS_PER_DEGREE : Number

度的弧度数。
Default Value: Math.PI / 180.0

(static, constant) SIXTY_FOUR_KILOBYTES : Number

64*1024个

(static, constant) SOLAR_RADIUS : Number

太阳半径(米):6.955E8

(static, constant) THREE_PI_OVER_TWO : Number

三点/2

(static, constant) TWO_PI : Number

2个

Methods

(static) acosClamped(value) → {Number}
计算Math.acos(value),但第一个钳夹value到范围[-1.0,1.0]以便函数永远不会返回NaN。
Parameters:
value (Number) 计算ACO的值。
(static) asinClamped(value) → {Number}
计算Math.asin(value),但第一个钳夹value到范围[-1.0,1.0]以便函数永远不会返回NaN。
Parameters:
value (Number) 计算asin的值。
(static) cbrt(number) → {Number}
查找数字的多维数据集根。如果未提供number,则返回NaN。
Parameters:
number (Number) 号码。
(static) chordLength(angle, radius) → {Number}
根据圆的半径和点之间的角度,查找两点之间的弦长。
Parameters:
angle (Number) 两点之间的角度。
radius (Number) 圆的半径。
(static) clamp(value, min, max) → {Number}
将值约束在两个值之间。
Parameters:
value (Number) 要约束的值。
min (Number) 最小值。
max (Number) 最大值。
(static) clampToLatitudeRange(angle) → {Number}
方便函数,将纬度值(以弧度表示)钳制到范围[-Math.PI/2Math.PI/2)。用于在需要正确范围的对象中使用前清理数据。
Parameters:
angle (Number) 以弧度表示的纬度值,以钳制到范围[-Math.PI/2Math.PI/2)。
Example
// Clamp 108 degrees latitude to 90 degrees latitude
var latitude = bmgl.Math.clampToLatitudeRange(bmgl.Math.toRadians(108.0));
(static) convertLongitudeRange(angle) → {Number}
将经度值(以弧度表示)转换为范围[-Math.PIMath.PI)。
Parameters:
angle (Number) 以弧度表示的经度值,转换为范围[-Math.PIMath.PI)。
Example
// Convert 270 degrees to -90 degrees longitude
var longitude = bmgl.Math.convertLongitudeRange(bmgl.Math.toRadians(270.0));
(static) cosh(value) → {Number}
返回数字的双曲余弦。value的双曲余弦定义为(ex + e-x)/2.0,其中e为欧拉数,约为2.71828183。

特殊情况:

  • 如果参数为NaN,则结果为NaN。
  • 如果参数为无穷大,则结果为正无穷大。
  • 如果参数为零,则结果为1.0。

Parameters:
value (Number) 要返回其双曲余弦值的数字。
(static) equalsEpsilon(left, right, relativeEpsilon, absoluteEpsilon) → {Boolean}
使用绝对或相对公差测试确定两个值是否相等。这有助于避免直接比较浮点值时由于舍入错误而产生的问题。首先使用绝对公差测试比较这些值。如果失败,则进行相对公差试验。如果您不确定左右的大小,请使用此测试。
Parameters:
left (Number) 要比较的第一个值。
right (Number) 要比较的另一个值。
relativeEpsilon (Number) 相对公差试验中leftright之间的最大包含增量。
absoluteEpsilon (Number) (default relativeEpsilon) 绝对公差试验中leftright之间的最大包含增量。
Example
var a = bmgl.Math.equalsEpsilon(0.0, 0.01, bmgl.Math.EPSILON2); // true
var b = bmgl.Math.equalsEpsilon(0.0, 0.1, bmgl.Math.EPSILON2);  // false
var c = bmgl.Math.equalsEpsilon(3699175.1634344, 3699175.2, bmgl.Math.EPSILON7); // true
var d = bmgl.Math.equalsEpsilon(3699175.1634344, 3699175.2, bmgl.Math.EPSILON9); // false
(static) factorial(n) → {Number}
计算所提供数字的阶乘。
Parameters:
n (Number) 要计算其阶乘的数字。
Example
//Compute 7!, which is equal to 5040
var computedFactorial = bmgl.Math.factorial(7);
Throws
See:
(static) fastApproximateAtan(x) → {Number}
为范围内的输入计算atan的快速近似值[-1,1]。基于来自shaderfastlibs的michal drobot近似,后者又基于“反正切函数的有效近似”,Rajan,S.Sichun Wang Inkol,R.Joyal,A.,2006年5月。改编自麻省理工学院许可证下的shaderfastlibs。
Parameters:
x (Number) 范围内的输入数字[-1,1]
(static) fastApproximateAtan2(x, y) → {Number}
计算任意输入标量的atan2(x,y)的快速近似值。基于Nvidia CG参考实现的范围缩小数学:http://developer.download.nvidia.com/cg/atan2.html
Parameters:
x (Number) 如果y为零,则输入的数字不为零。
y (Number) 如果x为零,则不是零的输入数字。
(static) fromSNorm(value, rangeMaximum) → {Number}
将范围[0,RangeMaximum]中的snorm值转换为范围[-1.0,1.0]中的标量。
Parameters:
value (Number) 范围内的snorm值[0,rangemax]
rangeMaximum (Number) (default 255) snorm范围内的最大值,默认为255。
See:
  • BMMath.toSNorm
(static) greaterThan(left, right, absoluteEpsilon) → {Boolean}
确定左值是否大于右值。如果这两个值彼此在absoluteEpsilon范围内,则认为它们相等,并且此函数返回false。
Parameters:
left (Number) 要比较的第一个数字。
right (Number) 要比较的第二个数字。
absoluteEpsilon (Number) 比较中使用的绝对epsilon。
(static) greaterThanOrEquals(left, right, absoluteEpsilon) → {Boolean}
确定左值是否大于或等于右值。如果这两个值彼此在absoluteEpsilon范围内,则认为它们相等,此函数返回true。
Parameters:
left (Number) 要比较的第一个数字。
right (Number) 要比较的第二个数字。
absoluteEpsilon (Number) 比较中使用的绝对epsilon。
(static) incrementWrap(n, maximumValue, minimumValue) → {Number}
如果数字超过最大值,则用换行符将数字递增到最小值。
Parameters:
n (Number) 要递增的数字。
maximumValue (Number) 滚动到最小值之前的最大增量值。
minimumValue (Number) (default 0.0) 超过最大值后重置为的数字。
Example
var n = bmgl.Math.incrementWrap(5, 10, 0); // returns 6
var n = bmgl.Math.incrementWrap(10, 10, 0); // returns 0
Throws
(static) isPowerOfTwo(n) → {Boolean}
确定正整数是否为二的幂。
Parameters:
n (Number) 要测试的正整数。
Example
var t = bmgl.Math.isPowerOfTwo(16); // true
var f = bmgl.Math.isPowerOfTwo(20); // false
Throws
(static) lerp(p, q, time) → {Number}
计算两个值的线性插值。
Parameters:
p (Number) 要插入的起始值。
q (Number) 要插入的结束值。
time (Number) 插值时间一般在[0.0, 1.0]范围内。
Example
var n = bmgl.Math.lerp(0.0, 2.0, 0.5); // returns 1.0
(static) lessThan(left, right, absoluteEpsilon) → {Boolean}
确定左值是否小于右值。如果这两个值彼此在absoluteEpsilon范围内,则认为它们相等,并且此函数返回false。
Parameters:
left (Number) 要比较的第一个数字。
right (Number) 要比较的第二个数字。
absoluteEpsilon (Number) 比较中使用的绝对epsilon。
(static) lessThanOrEquals(left, right, absoluteEpsilon) → {Boolean}
确定左值是否小于或等于右值。如果这两个值彼此在absoluteEpsilon范围内,则认为它们相等,此函数返回true。
Parameters:
left (Number) 要比较的第一个数字。
right (Number) 要比较的第二个数字。
absoluteEpsilon (Number) 比较中使用的绝对epsilon。
(static) log2(number) → {Number}
查找以2为底的对数。
Parameters:
number (Number) 号码。
(static) logBase(number, base) → {Number}
查找以底为底的数字的对数。
Parameters:
number (Number) 号码。
base (Number) 基地。
(static) mod(m, n) → {Number}
也适用于负股息的模运算。
Parameters:
m (Number) 股息。
n (Number) 除数。
(static) negativePiToPi(angle) → {Number}
在范围-pi<=angle<=pi中生成一个与提供的角度等效的角度。
Parameters:
angle (Number) 以弧度表示
(static) nextPowerOfTwo(n) → {Number}
计算大于或等于提供的正整数的两个整数的次幂。
Parameters:
n (Number) 要测试的正整数。
Example
var n = bmgl.Math.nextPowerOfTwo(29); // 32
var m = bmgl.Math.nextPowerOfTwo(32); // 32
Throws
(static) nextRandomNumber() → {Number}
使用Mersenne Twister生成[0.0,1.0]范围内的随机浮点数。
See:
(static) normalize(value, rangeMinimum, rangeMaximum) → {Number}
将范围[RangeMinimum,RangeMaximum]中的标量值转换为范围[0.0,1.0]中的标量
Parameters:
value (Number) 范围中的标量值[RangeMinimum,RangeMaximum]
rangeMinimum (Number) 映射范围中的最小值。
rangeMaximum (Number) 映射范围中的最大值。
(static) randomBetween(min, max) → {Number}
在两个数字之间生成一个随机数。
Parameters:
min (Number) 最小值。
max (Number) 最大值。
(static) setRandomNumberSeed(seed)
BMMath#nextRandomNumber中设置随机数生成器使用的种子。
Parameters:
seed (Number) 用作种子的整数。
(static) sign(value) → {Number}
返回值的符号;如果值为正,则返回1;如果值为负,则返回-1;如果值为0,则返回0。
Parameters:
value (Number) 返回的符号的值。
(static) signNotZero(value) → {Number}
如果给定值为正或零,则返回1.0;如果给定值为负,则返回-1.0。这与BMMath#sign类似,只是当输入值为0.0时返回1.0而不是0.0。
Parameters:
value (Number) 返回的符号的值。
(static) sinh(value) → {Number}
返回数字的双曲正弦值。 value 的双曲正弦定义为 (ex - e-x)/2.0 ,其中e是欧拉数,大约为2.71828183。

特殊情况:

  • 如果自变量为NaN,则结果为NaN。
  • 如果自变量为无穷大,则结果为与该自变量具有相同符号的无穷大。
  • 如果自变量为零,则结果为零,其符号与自变量相同。

Parameters:
value (Number) 要返回其双曲正弦值的数字。
(static) toDegrees(radians) → {Number}
将弧度转换为度数。
Parameters:
radians (Number) 以弧度转换的角度。
(static) toRadians(degrees) → {Number}
将度转换为弧度。
Parameters:
degrees (Number) 以度为单位转换的角度。
(static) toSNorm(value, rangeMaximum) → {Number}
将范围内的标量值[-1.0,1.0]转换为范围[0,rangemaximum]内的snorm
Parameters:
value (Number) 范围内的标量值[-1.0,1.0]
rangeMaximum (Number) (default 255) 映射范围中的最大值,默认为255。
See:
  • BMMath.fromSNorm
(static) zeroToTwoPi(angle) → {Number}
在0<=角度<=2pi范围内生成一个角度,该角度等于提供的角度。
Parameters:
angle (Number) 以弧度表示