數(shù)學(xué)函數(shù)。
Members
(static, constant) DEGREES_PER_RADIAN : Number
以弧度表示的度數(shù)。
-
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個(gè)
(static, constant) EPSILON6 : Number
0.000001個(gè)
(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個(gè)
(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
根據(jù)wgs84模型3.986004418e14,地球的重力參數(shù)(單位:米/平方秒)
(static, constant) LUNAR_RADIUS : Number
根據(jù)“IAU/IAG行星和衛(wèi)星的地圖坐標(biāo)和旋轉(zhuǎn)要素工作組的報(bào)告:2000”,天體力學(xué)82:83-110,2002年,月球的平均半徑。
(static, constant) ONE_OVER_PI : Number
1個(gè)/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
弧秒中的弧度數(shù)。
-
Default Value:
BMMath.RADIANS_PER_DEGREE
/ 3600.0
(static, constant) RADIANS_PER_DEGREE : Number
度的弧度數(shù)。
-
Default Value:
Math.PI / 180.0
(static, constant) SIXTY_FOUR_KILOBYTES : Number
64*1024個(gè)
(static, constant) SOLAR_RADIUS : Number
太陽半徑(米):6.955E8
(static, constant) THREE_PI_OVER_TWO : Number
三點(diǎn)/2
(static, constant) TWO_PI : Number
2個(gè)
Methods
(static) acosClamped(value) → {Number}
計(jì)算
Math.acos(value)
,但第一個(gè)鉗夾value
到范圍[-1.0,1.0]以便函數(shù)永遠(yuǎn)不會(huì)返回NaN。
Parameters:
value
(Number)
計(jì)算ACO的值。
計(jì)算
Math.asin(value)
,但第一個(gè)鉗夾value
到范圍[-1.0,1.0]以便函數(shù)永遠(yuǎn)不會(huì)返回NaN。
Parameters:
value
(Number)
計(jì)算asin的值。
查找數(shù)字的多維數(shù)據(jù)集根。如果未提供
number
,則返回NaN。
Parameters:
number
(Number)
號碼。
根據(jù)圓的半徑和點(diǎn)之間的角度,查找兩點(diǎn)之間的弦長。
Parameters:
angle
(Number)
兩點(diǎn)之間的角度。
radius
(Number)
圓的半徑。
將值約束在兩個(gè)值之間。
Parameters:
value
(Number)
要約束的值。
min
(Number)
最小值。
max
(Number)
最大值。
方便函數(shù),將緯度值(以弧度表示)鉗制到范圍[
-Math.PI/2
,Math.PI/2
)。用于在需要正確范圍的對象中使用前清理數(shù)據(jù)。
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));
將經(jīng)度值(以弧度表示)轉(zhuǎn)換為范圍[
-Math.PI
,Math.PI
)。
Parameters:
angle
(Number)
以弧度表示的經(jīng)度值,轉(zhuǎn)換為范圍[-Math.PI
,Math.PI
)。
Example
// Convert 270 degrees to -90 degrees longitude
var longitude = bmgl.Math.convertLongitudeRange(bmgl.Math.toRadians(270.0));
返回?cái)?shù)字的雙曲余弦。value的雙曲余弦定義為(ex + e-x)/2.0,其中e為歐拉數(shù),約為2.71828183。
特殊情況:
- 如果參數(shù)為NaN,則結(jié)果為NaN。
- 如果參數(shù)為無窮大,則結(jié)果為正無窮大。
- 如果參數(shù)為零,則結(jié)果為1.0。
Parameters:
value
(Number)
要返回其雙曲余弦值的數(shù)字。
使用絕對或相對公差測試確定兩個(gè)值是否相等。這有助于避免直接比較浮點(diǎn)值時(shí)由于舍入錯(cuò)誤而產(chǎn)生的問題。首先使用絕對公差測試比較這些值。如果失敗,則進(jìn)行相對公差試驗(yàn)。如果您不確定左右的大小,請使用此測試。
Parameters:
left
(Number)
要比較的第一個(gè)值。
right
(Number)
要比較的另一個(gè)值。
relativeEpsilon
(Number)
相對公差試驗(yàn)中left
和right
之間的最大包含增量。
absoluteEpsilon
(Number)
(default relativeEpsilon
)
絕對公差試驗(yàn)中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
計(jì)算所提供數(shù)字的階乘。
Parameters:
n
(Number)
要計(jì)算其階乘的數(shù)字。
Throws
-
DeveloperError : 需要大于或等于0的數(shù)字。
為范圍內(nèi)的輸入計(jì)算atan的快速近似值[-1,1]。基于來自shaderfastlibs的michal drobot近似,后者又基于“反正切函數(shù)的有效近似”,Rajan,S.Sichun Wang Inkol,R.Joyal,A.,2006年5月。改編自麻省理工學(xué)院許可證下的shaderfastlibs。
Parameters:
x
(Number)
范圍內(nèi)的輸入數(shù)字[-1,1]
計(jì)算任意輸入標(biāo)量的atan2(x,y)的快速近似值。基于Nvidia CG參考實(shí)現(xiàn)的范圍縮小數(shù)學(xué):http://developer.download.nvidia.com/cg/atan2.html
Parameters:
x
(Number)
如果y為零,則輸入的數(shù)字不為零。
y
(Number)
如果x為零,則不是零的輸入數(shù)字。
將范圍[0,RangeMaximum]中的snorm值轉(zhuǎn)換為范圍[-1.0,1.0]中的標(biāo)量。
Parameters:
value
(Number)
范圍內(nèi)的snorm值[0,rangemax]
rangeMaximum
(Number)
(default 255
)
snorm范圍內(nèi)的最大值,默認(rèn)為255。
- BMMath.toSNorm
See:
確定左值是否大于右值。如果這兩個(gè)值彼此在
absoluteEpsilon
范圍內(nèi),則認(rèn)為它們相等,并且此函數(shù)返回false。
Parameters:
left
(Number)
要比較的第一個(gè)數(shù)字。
right
(Number)
要比較的第二個(gè)數(shù)字。
absoluteEpsilon
(Number)
比較中使用的絕對epsilon。
確定左值是否大于或等于右值。如果這兩個(gè)值彼此在
absoluteEpsilon
范圍內(nèi),則認(rèn)為它們相等,此函數(shù)返回true。
Parameters:
left
(Number)
要比較的第一個(gè)數(shù)字。
right
(Number)
要比較的第二個(gè)數(shù)字。
absoluteEpsilon
(Number)
比較中使用的絕對epsilon。
如果數(shù)字超過最大值,則用換行符將數(shù)字遞增到最小值。
Parameters:
n
(Number)
要遞增的數(shù)字。
maximumValue
(Number)
滾動(dòng)到最小值之前的最大增量值。
minimumValue
(Number)
(default 0.0
)
超過最大值后重置為的數(shù)字。
Example
var n = bmgl.Math.incrementWrap(5, 10, 0); // returns 6
var n = bmgl.Math.incrementWrap(10, 10, 0); // returns 0
Throws
-
DeveloperError : 最大值必須大于最小值。
確定正整數(shù)是否為二的冪。
Parameters:
n
(Number)
要測試的正整數(shù)。
Throws
-
DeveloperError : 需要大于或等于0的數(shù)字。
計(jì)算兩個(gè)值的線性插值。
Parameters:
p
(Number)
要插入的起始值。
q
(Number)
要插入的結(jié)束值。
time
(Number)
插值時(shí)間一般在[0.0, 1.0]
范圍內(nèi)。
確定左值是否小于右值。如果這兩個(gè)值彼此在
absoluteEpsilon
范圍內(nèi),則認(rèn)為它們相等,并且此函數(shù)返回false。
Parameters:
left
(Number)
要比較的第一個(gè)數(shù)字。
right
(Number)
要比較的第二個(gè)數(shù)字。
absoluteEpsilon
(Number)
比較中使用的絕對epsilon。
確定左值是否小于或等于右值。如果這兩個(gè)值彼此在
absoluteEpsilon
范圍內(nèi),則認(rèn)為它們相等,此函數(shù)返回true。
Parameters:
left
(Number)
要比較的第一個(gè)數(shù)字。
right
(Number)
要比較的第二個(gè)數(shù)字。
absoluteEpsilon
(Number)
比較中使用的絕對epsilon。
查找以2為底的對數(shù)。
Parameters:
number
(Number)
號碼。
查找以底為底的數(shù)字的對數(shù)。
Parameters:
number
(Number)
號碼。
base
(Number)
基地。
也適用于負(fù)股息的模運(yùn)算。
Parameters:
m
(Number)
股息。
n
(Number)
除數(shù)。
在范圍-pi<=angle<=pi中生成一個(gè)與提供的角度等效的角度。
Parameters:
angle
(Number)
以弧度表示
計(jì)算大于或等于提供的正整數(shù)的兩個(gè)整數(shù)的次冪。
Parameters:
n
(Number)
要測試的正整數(shù)。
Throws
-
DeveloperError : 需要大于或等于0的數(shù)字。
使用Mersenne Twister生成[0.0,1.0]范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)。
- BMMath.setRandomNumberSeed
- Mersenne twister on Wikipedia
See:
將范圍[RangeMinimum,RangeMaximum]中的標(biāo)量值轉(zhuǎn)換為范圍[0.0,1.0]中的標(biāo)量
Parameters:
value
(Number)
范圍中的標(biāo)量值[RangeMinimum,RangeMaximum]
rangeMinimum
(Number)
映射范圍中的最小值。
rangeMaximum
(Number)
映射范圍中的最大值。
在兩個(gè)數(shù)字之間生成一個(gè)隨機(jī)數(shù)。
Parameters:
min
(Number)
最小值。
max
(Number)
最大值。
在
BMMath#nextRandomNumber
中設(shè)置隨機(jī)數(shù)生成器使用的種子。
Parameters:
seed
(Number)
用作種子的整數(shù)。
返回值的符號;如果值為正,則返回1;如果值為負(fù),則返回-1;如果值為0,則返回0。
Parameters:
value
(Number)
返回的符號的值。
如果給定值為正或零,則返回1.0;如果給定值為負(fù),則返回-1.0。這與
BMMath#sign
類似,只是當(dāng)輸入值為0.0時(shí)返回1.0而不是0.0。
Parameters:
value
(Number)
返回的符號的值。
返回?cái)?shù)字的雙曲正弦值。 value 的雙曲正弦定義為
(ex - e-x)/2.0
,其中e是歐拉數(shù),大約為2.71828183。
特殊情況:
- 如果自變量為NaN,則結(jié)果為NaN。
- 如果自變量為無窮大,則結(jié)果為與該自變量具有相同符號的無窮大。
- 如果自變量為零,則結(jié)果為零,其符號與自變量相同。
Parameters:
value
(Number)
要返回其雙曲正弦值的數(shù)字。
將弧度轉(zhuǎn)換為度數(shù)。
Parameters:
radians
(Number)
以弧度轉(zhuǎn)換的角度。
將度轉(zhuǎn)換為弧度。
Parameters:
degrees
(Number)
以度為單位轉(zhuǎn)換的角度。
將范圍內(nèi)的標(biāo)量值[-1.0,1.0]轉(zhuǎn)換為范圍[0,rangemaximum]內(nèi)的snorm
Parameters:
value
(Number)
范圍內(nèi)的標(biāo)量值[-1.0,1.0]
rangeMaximum
(Number)
(default 255
)
映射范圍中的最大值,默認(rèn)為255。
- BMMath.fromSNorm
See:
在0<=角度<=2pi范圍內(nèi)生成一個(gè)角度,該角度等于提供的角度。
Parameters:
angle
(Number)
以弧度表示