數學函數。
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)
以弧度表示