@lijuhong1981/jsmath 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +6 -4
- package/package.json +1 -1
- package/src/lerp.js +8 -8
- package/src/normalize.js +15 -0
- package/src/{percentInRange.js → scalarInRange.js} +7 -7
package/index.js
CHANGED
|
@@ -22,9 +22,10 @@ import convertToLatitudeRange from "./src/convertToLatitudeRange.js";
|
|
|
22
22
|
import convertToLongitudeRange from "./src/convertToLongitudeRange.js";
|
|
23
23
|
import isBetween from "./src/isBetween.js";
|
|
24
24
|
import lerp from "./src/lerp.js";
|
|
25
|
-
import
|
|
26
|
-
import
|
|
25
|
+
import scalarInRange from "./src/scalarInRange.js";
|
|
26
|
+
import normalize from "./src/normalize.js";
|
|
27
27
|
import randomNumber from "./src/randomNumber.js";
|
|
28
|
+
import randomInteger from "./src/randomInteger.js";
|
|
28
29
|
import Range from "./src/Range.js";
|
|
29
30
|
|
|
30
31
|
export {
|
|
@@ -50,8 +51,9 @@ export {
|
|
|
50
51
|
convertToLongitudeRange,
|
|
51
52
|
isBetween,
|
|
52
53
|
lerp,
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
scalarInRange,
|
|
55
|
+
normalize,
|
|
55
56
|
randomNumber,
|
|
57
|
+
randomInteger,
|
|
56
58
|
Range,
|
|
57
59
|
};
|
package/package.json
CHANGED
package/src/lerp.js
CHANGED
|
@@ -2,20 +2,20 @@ import Check from "@lijuhong1981/jscheck";
|
|
|
2
2
|
import clamp from "./clamp.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param {Number}
|
|
5
|
+
* 在两个数值之间线性插值
|
|
6
|
+
* @param {Number} start 开始数值
|
|
7
7
|
* @param {Number} end 结束数值
|
|
8
|
-
* @param {Number}
|
|
8
|
+
* @param {Number} scalar 插值标量,needClamp为true时约束在[0,1]区间内,为false时可超出[0,1]区间
|
|
9
9
|
* @param {Boolean} needClamp 是否需要约束插值,默认true
|
|
10
10
|
* @returns {Number} 插值结果
|
|
11
11
|
*/
|
|
12
|
-
function lerp(
|
|
13
|
-
Check.typeOf.number('
|
|
12
|
+
function lerp(start, end, scalar, needClamp = true) {
|
|
13
|
+
Check.typeOf.number('start', start);
|
|
14
14
|
Check.typeOf.number('end', end);
|
|
15
|
-
Check.typeOf.number('
|
|
15
|
+
Check.typeOf.number('scalar', scalar);
|
|
16
16
|
if (needClamp)
|
|
17
|
-
|
|
18
|
-
return
|
|
17
|
+
scalar = clamp(scalar, 0, 1);
|
|
18
|
+
return start + (end - start) * scalar;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export default lerp;
|
package/src/normalize.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import scalarInRange from "./scalarInRange.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 计算一个数值在两个数值范围内的线性插值标准量
|
|
5
|
+
* 结果范围为[0, 1]区间
|
|
6
|
+
* @param {Number} value 需要计算的数值
|
|
7
|
+
* @param {Number} rangeMinimum 较小数
|
|
8
|
+
* @param {Number} rangeMaximum 较大数
|
|
9
|
+
* @returns {Number} 插值标量
|
|
10
|
+
*/
|
|
11
|
+
function normalize(value, rangeMinimum, rangeMaximum) {
|
|
12
|
+
return scalarInRange(value, rangeMinimum, rangeMaximum, true);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default normalize;
|
|
@@ -2,21 +2,21 @@ import Check from "@lijuhong1981/jscheck";
|
|
|
2
2
|
import clamp from "./clamp.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* 计算一个数值在两个数值范围内的线性插值标量
|
|
6
6
|
* @param {Number} value 需要计算的数值
|
|
7
7
|
* @param {Number} rangeMinimum 较小数
|
|
8
8
|
* @param {Number} rangeMaximum 较大数
|
|
9
9
|
* @param {Boolean} needClamp 是否需要约束至0到1之间,默认false
|
|
10
|
-
* @returns {Number}
|
|
10
|
+
* @returns {Number} 插值标量
|
|
11
11
|
*/
|
|
12
|
-
function
|
|
12
|
+
function scalarInRange(value, rangeMinimum, rangeMaximum, needClamp = false) {
|
|
13
13
|
Check.typeOf.number('value', value);
|
|
14
14
|
Check.typeOf.number('rangeMinimum', rangeMinimum);
|
|
15
15
|
Check.typeOf.number('rangeMaximum', rangeMaximum);
|
|
16
|
-
let
|
|
16
|
+
let scalar = (value - rangeMinimum) / (rangeMaximum - rangeMinimum);
|
|
17
17
|
if (needClamp)
|
|
18
|
-
|
|
19
|
-
return
|
|
18
|
+
scalar = clamp(scalar, 0, 1);
|
|
19
|
+
return scalar;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export default
|
|
22
|
+
export default scalarInRange;
|