数学函数。
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的值。
计算
Math.asin(value)
,但第一个钳夹value
到范围[-1.0,1.0]以便函数永远不会返回NaN。
Parameters:
value
(Number)
计算asin的值。
查找数字的多维数据集根。如果未提供
number
,则返回NaN。
Parameters:
number
(Number)
号码。
根据圆的半径和点之间的角度,查找两点之间的弦长。
Parameters:
angle
(Number)
两点之间的角度。
radius
(Number)
圆的半径。
将值约束在两个值之间。
Parameters:
value
(Number)
要约束的值。
min
(Number)
最小值。
max
(Number)
最大值。
方便函数,将纬度值(以弧度表示)钳制到范围[
-Math.PI/2
,Math.PI/2
)。用于在需要正确范围的对象中使用前清理数据。
Parameters:
angle
(Number)
以弧度表示的纬度值,以钳制到范围[-Math.PI/2
,Math.PI/2
)。
Example
// Clamp 108 degrees latitude to 90 degrees latitude
var latitude = bmgl.Math.clampToLatitudeRange(bmgl.Math.toRadians(108.0));
将经度值(以弧度表示)转换为范围[
-Math.PI
,Math.PI
)。
Parameters:
angle
(Number)
以弧度表示的经度值,转换为范围[-Math.PI
,Math.PI
)。
Example
// Convert 270 degrees to -90 degrees longitude
var longitude = bmgl.Math.convertLongitudeRange(bmgl.Math.toRadians(270.0));
返回数字的双曲余弦。value的双曲余弦定义为(ex + e-x)/2.0,其中e为欧拉数,约为2.71828183。
特殊情况:
- 如果参数为NaN,则结果为NaN。
- 如果参数为无穷大,则结果为正无穷大。
- 如果参数为零,则结果为1.0。
Parameters:
value
(Number)
要返回其双曲余弦值的数字。
使用绝对或相对公差测试确定两个值是否相等。这有助于避免直接比较浮点值时由于舍入错误而产生的问题。首先使用绝对公差测试比较这些值。如果失败,则进行相对公差试验。如果您不确定左右的大小,请使用此测试。
Parameters:
left
(Number)
要比较的第一个值。
right
(Number)
要比较的另一个值。
relativeEpsilon
(Number)
相对公差试验中left
和right
之间的最大包含增量。
absoluteEpsilon
(Number)
(default relativeEpsilon
)
绝对公差试验中left
和right
之间的最大包含增量。
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
计算所提供数字的阶乘。
Parameters:
n
(Number)
要计算其阶乘的数字。
Throws
-
DeveloperError : 需要大于或等于0的数字。
为范围内的输入计算atan的快速近似值[-1,1]。基于来自shaderfastlibs的michal drobot近似,后者又基于“反正切函数的有效近似”,Rajan,S.Sichun Wang Inkol,R.Joyal,A.,2006年5月。改编自麻省理工学院许可证下的shaderfastlibs。
Parameters:
x
(Number)
范围内的输入数字[-1,1]
计算任意输入标量的atan2(x,y)的快速近似值。基于Nvidia CG参考实现的范围缩小数学:http://developer.download.nvidia.com/cg/atan2.html
Parameters:
x
(Number)
如果y为零,则输入的数字不为零。
y
(Number)
如果x为零,则不是零的输入数字。
将范围[0,RangeMaximum]中的snorm值转换为范围[-1.0,1.0]中的标量。
Parameters:
value
(Number)
范围内的snorm值[0,rangemax]
rangeMaximum
(Number)
(default 255
)
snorm范围内的最大值,默认为255。
- BMMath.toSNorm
See:
确定左值是否大于右值。如果这两个值彼此在
absoluteEpsilon
范围内,则认为它们相等,并且此函数返回false。
Parameters:
left
(Number)
要比较的第一个数字。
right
(Number)
要比较的第二个数字。
absoluteEpsilon
(Number)
比较中使用的绝对epsilon。
确定左值是否大于或等于右值。如果这两个值彼此在
absoluteEpsilon
范围内,则认为它们相等,此函数返回true。
Parameters:
left
(Number)
要比较的第一个数字。
right
(Number)
要比较的第二个数字。
absoluteEpsilon
(Number)
比较中使用的绝对epsilon。
如果数字超过最大值,则用换行符将数字递增到最小值。
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
-
DeveloperError : 最大值必须大于最小值。
确定正整数是否为二的幂。
Parameters:
n
(Number)
要测试的正整数。
Throws
-
DeveloperError : 需要大于或等于0的数字。
计算两个值的线性插值。
Parameters:
p
(Number)
要插入的起始值。
q
(Number)
要插入的结束值。
time
(Number)
插值时间一般在[0.0, 1.0]
范围内。
确定左值是否小于右值。如果这两个值彼此在
absoluteEpsilon
范围内,则认为它们相等,并且此函数返回false。
Parameters:
left
(Number)
要比较的第一个数字。
right
(Number)
要比较的第二个数字。
absoluteEpsilon
(Number)
比较中使用的绝对epsilon。
确定左值是否小于或等于右值。如果这两个值彼此在
absoluteEpsilon
范围内,则认为它们相等,此函数返回true。
Parameters:
left
(Number)
要比较的第一个数字。
right
(Number)
要比较的第二个数字。
absoluteEpsilon
(Number)
比较中使用的绝对epsilon。
查找以2为底的对数。
Parameters:
number
(Number)
号码。
查找以底为底的数字的对数。
Parameters:
number
(Number)
号码。
base
(Number)
基地。
也适用于负股息的模运算。
Parameters:
m
(Number)
股息。
n
(Number)
除数。
在范围-pi<=angle<=pi中生成一个与提供的角度等效的角度。
Parameters:
angle
(Number)
以弧度表示
计算大于或等于提供的正整数的两个整数的次幂。
Parameters:
n
(Number)
要测试的正整数。
Throws
-
DeveloperError : 需要大于或等于0的数字。
使用Mersenne Twister生成[0.0,1.0]范围内的随机浮点数。
- BMMath.setRandomNumberSeed
- Mersenne twister on Wikipedia
See:
将范围[RangeMinimum,RangeMaximum]中的标量值转换为范围[0.0,1.0]中的标量
Parameters:
value
(Number)
范围中的标量值[RangeMinimum,RangeMaximum]
rangeMinimum
(Number)
映射范围中的最小值。
rangeMaximum
(Number)
映射范围中的最大值。
在两个数字之间生成一个随机数。
Parameters:
min
(Number)
最小值。
max
(Number)
最大值。
在
BMMath#nextRandomNumber
中设置随机数生成器使用的种子。
Parameters:
seed
(Number)
用作种子的整数。
返回值的符号;如果值为正,则返回1;如果值为负,则返回-1;如果值为0,则返回0。
Parameters:
value
(Number)
返回的符号的值。
如果给定值为正或零,则返回1.0;如果给定值为负,则返回-1.0。这与
BMMath#sign
类似,只是当输入值为0.0时返回1.0而不是0.0。
Parameters:
value
(Number)
返回的符号的值。
返回数字的双曲正弦值。 value 的双曲正弦定义为
(ex - e-x)/2.0
,其中e是欧拉数,大约为2.71828183。
特殊情况:
- 如果自变量为NaN,则结果为NaN。
- 如果自变量为无穷大,则结果为与该自变量具有相同符号的无穷大。
- 如果自变量为零,则结果为零,其符号与自变量相同。
Parameters:
value
(Number)
要返回其双曲正弦值的数字。
将弧度转换为度数。
Parameters:
radians
(Number)
以弧度转换的角度。
将度转换为弧度。
Parameters:
degrees
(Number)
以度为单位转换的角度。
将范围内的标量值[-1.0,1.0]转换为范围[0,rangemaximum]内的snorm
Parameters:
value
(Number)
范围内的标量值[-1.0,1.0]
rangeMaximum
(Number)
(default 255
)
映射范围中的最大值,默认为255。
- BMMath.fromSNorm
See:
在0<=角度<=2pi范围内生成一个角度,该角度等于提供的角度。
Parameters:
angle
(Number)
以弧度表示