Commit be76ba5f authored by suncy's avatar suncy
Browse files

fix: index

parent 020e7101
No related merge requests found
Showing with 820 additions and 122 deletions
+820 -122
import * as bigInt1 from "./biginteger";
export * from "./util";
export const bigInt = bigInt1;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.bigInt = void 0;
const bigInt1 = require("./biginteger");
__exportStar(require("./util"), exports);
exports.bigInt = bigInt1;
//# sourceMappingURL=index.js.map
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bigint/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC"}
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bigint/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAwC;AAExC,yCAAuB;AAEV,QAAA,MAAM,GAAG,OAAO,CAAC"}
\ No newline at end of file
"use strict";
//将大整数转化为ArrayBuffer
export const u64ToBuffer = (n, littleEnd) => {
Object.defineProperty(exports, "__esModule", { value: true });
exports.BigU128 = exports.BigU64 = exports.i256Merge = exports.i128Merge = exports.i64Merge = exports.u256Merge = exports.u128Merge = exports.u64Merge = exports.i256Unwrap = exports.i128Unwrap = exports.i64Unwrap = exports.u256Unwrap = exports.u128Unwrap = exports.u64Unwrap = exports.bufferToI256 = exports.bufferToI128 = exports.bufferToI64 = exports.bufferToU256 = exports.bufferToU128 = exports.bufferToU64 = exports.i256ToBuffer = exports.i128ToBuffer = exports.i64ToBuffer = exports.u256ToBuffer = exports.u128ToBuffer = exports.u64ToBuffer = void 0;
const u64ToBuffer = (n, littleEnd) => {
if (n < 0n || n > 18446744073709551615n) {
throw new RangeError("outside the bounds of the u64");
}
return [0, uIntegerToBuffer(8, n, littleEnd)];
};
export const u128ToBuffer = (n, littleEnd) => {
exports.u64ToBuffer = u64ToBuffer;
const u128ToBuffer = (n, littleEnd) => {
if (n < 0n || n > 340282366920938463463374607431768211455n) {
throw new RangeError("outside the bounds of the u128");
}
return [0, uIntegerToBuffer(16, n, littleEnd)];
};
export const u256ToBuffer = (n, littleEnd) => {
exports.u128ToBuffer = u128ToBuffer;
const u256ToBuffer = (n, littleEnd) => {
if (n < 0n || n > 115792089237316195423570985008687907853269984665640564039457584007913129639935n) {
throw new RangeError("outside the bounds of the u256");
}
return [0, uIntegerToBuffer(32, n, littleEnd)];
};
export const i64ToBuffer = (n, littleEnd) => {
exports.u256ToBuffer = u256ToBuffer;
const i64ToBuffer = (n, littleEnd) => {
if (n < -9223372036854775808n || n > 9223372036854775807n) {
throw new RangeError("outside the bounds of the i64");
}
return [n < 0n ? 1 : 0, uIntegerToBuffer(8, n, littleEnd)];
};
export const i128ToBuffer = (n, littleEnd) => {
exports.i64ToBuffer = i64ToBuffer;
const i128ToBuffer = (n, littleEnd) => {
if (n < -170141183460469231731687303715884105728n || n > 170141183460469231731687303715884105727n) {
throw new RangeError("outside the bounds of the i128");
}
return [n < 0n ? 1 : 0, uIntegerToBuffer(16, n, littleEnd)];
};
export const i256ToBuffer = (n, littleEnd) => {
exports.i128ToBuffer = i128ToBuffer;
const i256ToBuffer = (n, littleEnd) => {
if (n < -57896044618658097711785492504343953926634992332820282019728792003956564819968n || n > 57896044618658097711785492504343953926634992332820282019728792003956564819967n) {
throw new RangeError("outside the bounds of the i256");
}
return [n < 0n ? 1 : 0, uIntegerToBuffer(32, n, littleEnd)];
};
exports.i256ToBuffer = i256ToBuffer;
const uIntegerToBuffer = (byteLength, n, littleEnd) => {
let i = 0;
let buf = new ArrayBuffer(byteLength);
......@@ -48,24 +57,30 @@ const uIntegerToBuffer = (byteLength, n, littleEnd) => {
}
return new Uint8Array(buf);
};
export const bufferToU64 = (buf, littleEnd) => {
const bufferToU64 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
export const bufferToU128 = (buf, littleEnd) => {
exports.bufferToU64 = bufferToU64;
const bufferToU128 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
export const bufferToU256 = (buf, littleEnd) => {
exports.bufferToU128 = bufferToU128;
const bufferToU256 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
export const bufferToI64 = (buf, littleEnd) => {
exports.bufferToU256 = bufferToU256;
const bufferToI64 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
export const bufferToI128 = (buf, littleEnd) => {
exports.bufferToI64 = bufferToI64;
const bufferToI128 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
export const bufferToI256 = (buf, littleEnd) => {
exports.bufferToI128 = bufferToI128;
const bufferToI256 = (buf, littleEnd) => {
return bufferToUInteger(buf, littleEnd);
};
exports.bufferToI256 = bufferToI256;
const bufferToUInteger = (buf, littleEnd) => {
let view = new DataView(buf.buffer);
let base = 1n;
......@@ -76,59 +91,73 @@ const bufferToUInteger = (buf, littleEnd) => {
}
return n;
};
export const u64Unwrap = (v) => {
return u64ToBuffer(v, true);
const u64Unwrap = (v) => {
return (0, exports.u64ToBuffer)(v, true);
};
export const u128Unwrap = (v) => {
return u128ToBuffer(v, true);
exports.u64Unwrap = u64Unwrap;
const u128Unwrap = (v) => {
return (0, exports.u128ToBuffer)(v, true);
};
export const u256Unwrap = (v) => {
return u256ToBuffer(v, true);
exports.u128Unwrap = u128Unwrap;
const u256Unwrap = (v) => {
return (0, exports.u256ToBuffer)(v, true);
};
export const i64Unwrap = (v) => {
return i64ToBuffer(v, true);
exports.u256Unwrap = u256Unwrap;
const i64Unwrap = (v) => {
return (0, exports.i64ToBuffer)(v, true);
};
export const i128Unwrap = (v) => {
return i128ToBuffer(v, true);
exports.i64Unwrap = i64Unwrap;
const i128Unwrap = (v) => {
return (0, exports.i128ToBuffer)(v, true);
};
export const i256Unwrap = (v) => {
return i256ToBuffer(v, true);
exports.i128Unwrap = i128Unwrap;
const i256Unwrap = (v) => {
return (0, exports.i256ToBuffer)(v, true);
};
export const u64Merge = (param) => {
exports.i256Unwrap = i256Unwrap;
const u64Merge = (param) => {
let [_, v] = param;
return bufferToU64(v, true);
return (0, exports.bufferToU64)(v, true);
};
export const u128Merge = (param) => {
exports.u64Merge = u64Merge;
const u128Merge = (param) => {
let [_, v] = param;
return bufferToU128(v, true);
return (0, exports.bufferToU128)(v, true);
};
export const u256Merge = (param) => {
exports.u128Merge = u128Merge;
const u256Merge = (param) => {
let [_, v] = param;
return bufferToU256(v, true);
return (0, exports.bufferToU256)(v, true);
};
export const i64Merge = (param) => {
exports.u256Merge = u256Merge;
const i64Merge = (param) => {
let [sign, v] = param;
let n = bufferToI64(v, true);
let n = (0, exports.bufferToI64)(v, true);
return sign === 1 ? -n : n;
};
export const i128Merge = (param) => {
exports.i64Merge = i64Merge;
const i128Merge = (param) => {
let [sign, v] = param;
let n = bufferToI128(v, true);
let n = (0, exports.bufferToI128)(v, true);
return sign === 1 ? -n : n;
};
export const i256Merge = (param) => {
exports.i128Merge = i128Merge;
const i256Merge = (param) => {
let [sign, v] = param;
let n = bufferToI256(v, true);
let n = (0, exports.bufferToI256)(v, true);
return sign === 1 ? -n : n;
};
export class BigU64 {
exports.i256Merge = i256Merge;
class BigU64 {
constructor(v) {
this.big = u64Merge([0, v]);
this.big = (0, exports.u64Merge)([0, v]);
}
}
export class BigU128 {
exports.BigU64 = BigU64;
class BigU128 {
constructor(v) {
this.big = u128Merge([0, v]);
this.big = (0, exports.u128Merge)([0, v]);
}
}
exports.BigU128 = BigU128;
//# sourceMappingURL=util.js.map
\ No newline at end of file
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/bigint/util.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/bigint/util.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
export * from "./bigint/index";
export * from "./math";
export * from "./nest_prob";
export * from "./rand";
export * from "./timeline";
export * from "./tween";
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./bigint/index"), exports);
__exportStar(require("./math"), exports);
__exportStar(require("./nest_prob"), exports);
__exportStar(require("./rand"), exports);
__exportStar(require("./timeline"), exports);
__exportStar(require("./tween"), exports);
//# sourceMappingURL=index.js.map
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,yCAAuB;AACvB,6CAA2B;AAC3B,0CAAwB"}
\ No newline at end of file
"use strict";
/**
* 数学库
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.equal = exports.nextPowerOfTwo = exports.nearestPowerOfTwo = exports.isPowerOfTwo = exports.radianToDegree = exports.degreeToRadian = exports.smootherstep = exports.smoothstep = exports.clamp = exports.catmullRom = exports.bernstein = exports.factorial = exports.linear = exports.getAngle = exports.getDirection = exports.shuffle = exports.cryptoRandomInts = exports.randomInt = exports.randomFloat = exports.roundInt = exports.round = exports.add64 = exports.mul64 = exports.imul = exports.strip = exports.EPISION = exports.INT32_MAX = exports.INT32_SIZE = exports.UINT32_SIZE = exports.UINT32_MAX = void 0;
// 32 位下实现 64 位的乘法运算
// http://www.mouseos.com/assembly/example/mul64.html
// ============================== 导入
// ============================== 导出
export const UINT32_MAX = -1 >>> 0;
export const UINT32_SIZE = UINT32_MAX + 1;
export const INT32_SIZE = UINT32_SIZE / 2;
export const INT32_MAX = INT32_SIZE - 1;
exports.UINT32_MAX = -1 >>> 0;
exports.UINT32_SIZE = exports.UINT32_MAX + 1;
exports.INT32_SIZE = exports.UINT32_SIZE / 2;
exports.INT32_MAX = exports.INT32_SIZE - 1;
/**
* 浮点误差
*/
export const EPISION = 0.001;
exports.EPISION = 0.001;
/**
* 处理显示上的浮点误差, 选择 12 是一个经验的选择,一般选12就能解决掉大部分0001和0009问题
* 遇到浮点数误差问题时可以直接使用 https://github.com/dt-fe/number-precision
* 一个用于任意精度的十进制算术的小型,快速的JavaScript的库。 http://mikemcl.github.io/big.js
*/
export const strip = (num, precision = 12) => {
const strip = (num, precision = 12) => {
return +parseFloat(num.toPrecision(precision));
};
exports.strip = strip;
/**
* 返回被视为 32 位带符号整数的两个数字的积。和C的运算一致,会自动溢出32以上的值
*/
export const imul = (() => {
exports.imul = (() => {
if (Math.imul) {
return Math.imul;
}
return (a, b) => (((a & 0xffff) * b) + ((((a >>> 16) * b) & 0xffff) << 16)) & 0xffffffff;
})();
// multiply two 64 bit numbers (given in parts), and store the result in `out`.
export const mul64 = (aHi, aLo, bHi, bLo, out) => {
const mul64 = (aHi, aLo, bHi, bLo, out) => {
let c1 = (aLo >>> 16) * (bLo & 0xffff) >>> 0;
let c0 = (aLo & 0xffff) * (bLo >>> 16) >>> 0;
let lo = ((aLo & 0xffff) * (bLo & 0xffff)) >>> 0;
......@@ -46,13 +50,14 @@ export const mul64 = (aHi, aLo, bHi, bLo, out) => {
if (lo < c1) {
hi = (hi + 1) >>> 0;
}
hi = (hi + imul(aLo, bHi)) >>> 0;
hi = (hi + imul(aHi, bLo)) >>> 0;
hi = (hi + (0, exports.imul)(aLo, bHi)) >>> 0;
hi = (hi + (0, exports.imul)(aHi, bLo)) >>> 0;
out[0] = hi;
out[1] = lo;
};
exports.mul64 = mul64;
// add two 64 bit numbers (given in parts), and store the result in `out`.
export const add64 = (aHi, aLo, bHi, bLo, out) => {
const add64 = (aHi, aLo, bHi, bLo, out) => {
let hi = (aHi + bHi) >>> 0;
let lo = (aLo + bLo) >>> 0;
if (lo < (aLo >>> 0)) {
......@@ -61,42 +66,47 @@ export const add64 = (aHi, aLo, bHi, bLo, out) => {
out[0] = hi;
out[1] = lo;
};
exports.add64 = add64;
/**
* 取小数点后n位数,其后的数四舍五入
* @param nfloat 数字
* @param n 前n位
* @return 数字
*/
export const round = (nfloat, n) => {
const round = (nfloat, n) => {
const i = Math.pow(10, n);
return Math.round(nfloat * i) / i;
};
exports.round = round;
/**
* 取小数点前n位数,其后的数四舍五入
* @param nint 数字
* @param n 前n位
* @return 数字
*/
export const roundInt = (nint, n) => {
const roundInt = (nint, n) => {
const i = Math.pow(10, n);
return Math.round(nint / i) * i;
};
exports.roundInt = roundInt;
/**
* @description 获得一个指定范围(左闭右开区间)的随机浮点数
* @example
*
*/
export const randomFloat = (v1, v2) => {
const randomFloat = (v1, v2) => {
return v1 + Math.random() * (v2 - v1);
};
exports.randomFloat = randomFloat;
/**
* @description 获得一个指定范围(闭区间)的随机整数
* @example
*
*/
export const randomInt = (v1, v2) => {
const randomInt = (v1, v2) => {
return v1 + Math.floor(Math.random() * (v2 - v1 + 1.0));
};
exports.randomInt = randomInt;
/**
* @description 获得一个安全的随机32位整数
* @example
......@@ -115,7 +125,7 @@ export const randomInt = (v1, v2) => {
* @example
*
*/
export const cryptoRandomInts = (array) => {
const cryptoRandomInts = (array) => {
if (crypto) {
return crypto.getRandomValues(array);
}
......@@ -124,12 +134,13 @@ export const cryptoRandomInts = (array) => {
}
return array;
};
exports.cryptoRandomInts = cryptoRandomInts;
/**
* @description 数组乱序
* @example
*
*/
export const shuffle = (array) => {
const shuffle = (array) => {
for (let i = array.length - 1; i >= 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
const temp = array[i];
......@@ -137,18 +148,20 @@ export const shuffle = (array) => {
array[j] = temp;
}
};
exports.shuffle = shuffle;
/**
* @description 获得两个向量夹角的方向,正数为顺时针,负数为逆时针
* @example
*/
export const getDirection = (vx1, vy1, vx2, vy2) => {
const getDirection = (vx1, vy1, vx2, vy2) => {
return vx1 * vy2 - vx2 * vy1;
};
exports.getDirection = getDirection;
/**
* @description 获得两个向量夹角的度数
* @example
*/
export const getAngle = (vx1, vy1, vx2, vy2) => {
const getAngle = (vx1, vy1, vx2, vy2) => {
const len1 = Math.sqrt(vx1 * vx1 + vy1 * vy1);
const len2 = Math.sqrt(vx2 * vx2 + vy2 * vy2);
const mr = len1 * len2;
......@@ -165,18 +178,20 @@ export const getAngle = (vx1, vy1, vx2, vy2) => {
}
return Math.acos(r) * 180 / Math.PI;
};
exports.getAngle = getAngle;
/**
* @description 线性插值 interpolation
* @example
*/
export const linear = (t, p0, p1) => {
const linear = (t, p0, p1) => {
return (p1 - p0) * t + p0;
};
exports.linear = linear;
/**
* @description 阶乘
* @example
*/
export const factorial = (n) => {
const factorial = (n) => {
const len = facCache.length;
if (n < len) {
return facCache[n];
......@@ -188,18 +203,20 @@ export const factorial = (n) => {
}
return s;
};
exports.factorial = factorial;
/**
* @description 伯恩斯坦 多项式
* @example
*/
export const bernstein = (i, n) => {
return factorial(n) / factorial(i) / factorial(n - i);
const bernstein = (i, n) => {
return (0, exports.factorial)(n) / (0, exports.factorial)(i) / (0, exports.factorial)(n - i);
};
exports.bernstein = bernstein;
/**
* @description Catmull-Rom 样条插值 interpolation
* @example
*/
export const catmullRom = (t, p0, p1, p2, p3) => {
const catmullRom = (t, p0, p1, p2, p3) => {
const v0 = (p2 - p0) * 0.5;
const v1 = (p3 - p1) * 0.5;
const t2 = t * t;
......@@ -207,17 +224,19 @@ export const catmullRom = (t, p0, p1, p2, p3) => {
// tslint:disable:binary-expression-operand-order
return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;
};
exports.catmullRom = catmullRom;
/**
* @description 截取num在[min, max]之间
* @note 假设:min必须小于等于max
*/
export const clamp = (num, min, max) => {
const clamp = (num, min, max) => {
return Math.max(min, Math.min(max, num));
};
exports.clamp = clamp;
/**
* @description 3次平滑插值
*/
export const smoothstep = (x, min, max) => {
const smoothstep = (x, min, max) => {
if (x <= min)
return 0;
if (x >= max)
......@@ -225,10 +244,11 @@ export const smoothstep = (x, min, max) => {
x = (x - min) / (max - min);
return x * x * (3 - 2 * x);
};
exports.smoothstep = smoothstep;
/**
* @description 5次平滑插值
*/
export const smootherstep = (x, min, max) => {
const smootherstep = (x, min, max) => {
if (x <= min)
return 0;
if (x >= max)
......@@ -236,36 +256,41 @@ export const smootherstep = (x, min, max) => {
x = (x - min) / (max - min);
return x * x * x * (x * (x * 6 - 15) + 10);
};
exports.smootherstep = smootherstep;
/**
* @description 角度转弧度
*/
export const degreeToRadian = (degrees) => {
const degreeToRadian = (degrees) => {
const DEG2RAD = Math.PI / 180;
return degrees * DEG2RAD;
};
exports.degreeToRadian = degreeToRadian;
/**
* @description 弧度转角度
*/
export const radianToDegree = (radians) => {
const radianToDegree = (radians) => {
const RAD2DEG = 180 / Math.PI;
return radians * RAD2DEG;
};
exports.radianToDegree = radianToDegree;
/**
* @description 是否为二的冥
*/
export const isPowerOfTwo = (value) => {
const isPowerOfTwo = (value) => {
return (value & (value - 1)) === 0 && value !== 0;
};
exports.isPowerOfTwo = isPowerOfTwo;
/**
* @description 最近的2的冥的整数
*/
export const nearestPowerOfTwo = (value) => {
const nearestPowerOfTwo = (value) => {
return Math.pow(2, Math.round(Math.log(value) / Math.LN2));
};
exports.nearestPowerOfTwo = nearestPowerOfTwo;
/**
* @description 下一个2的冥的数
*/
export const nextPowerOfTwo = (value) => {
const nextPowerOfTwo = (value) => {
--value;
value |= value >> 1;
value |= value >> 2;
......@@ -274,12 +299,14 @@ export const nextPowerOfTwo = (value) => {
value |= value >> 16;
return ++value;
};
exports.nextPowerOfTwo = nextPowerOfTwo;
/**
* @description 浮点数相等
*/
export const equal = (num1, num2) => {
return Math.abs(num1 - num2) < EPISION;
const equal = (num1, num2) => {
return Math.abs(num1 - num2) < exports.EPISION;
};
exports.equal = equal;
// ============================== 本地
// 阶乘的计算缓冲
const facCache = [0, 1, 2];
......
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
"use strict";
/**
* 嵌套概率结构, 支持3种结构。
* 平均Avg, 表示里面每个元素按相同几率被选择1个。
......@@ -6,8 +7,10 @@
* 支持多层嵌套, 如果被选择的还是Avg,Weight,Prob,则继续选择。
* 顺序概率Rate, 表示里面的元素按顺序依次检查能否按几率被选中, 如果选中则返回。 仅声明使用,实际转化成了权重。
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeByJson = exports.make = exports.rateToWeight = exports.Prob = exports.Weight = exports.Avg = void 0;
// ============================== 导出
export class Avg {
class Avg {
constructor(values) {
this.values = values;
}
......@@ -16,7 +19,8 @@ export class Avg {
nextSelect(rand, this.values[i], result);
}
}
export class Weight extends Avg {
exports.Avg = Avg;
class Weight extends Avg {
constructor(values, weights) {
super(values);
this.amount = 0;
......@@ -39,7 +43,8 @@ export class Weight extends Avg {
}
}
}
export class Prob extends Avg {
exports.Weight = Weight;
class Prob extends Avg {
constructor(values, probs) {
super(values);
if (values.length !== probs.length)
......@@ -56,8 +61,9 @@ export class Prob extends Avg {
}
}
}
exports.Prob = Prob;
// 将顺序概率Rate, 里面的元素按顺序依次检查能否按概率被选中,将其转化成了权重。概率必须是[0, 1.0)的浮点数。
export const rateToWeight = (arr) => {
const rateToWeight = (arr) => {
// 按100,000,000扩大,转化成整数
let w = 100000000;
let r = arr.map(e => {
......@@ -69,25 +75,27 @@ export const rateToWeight = (arr) => {
r.push(w);
return r;
};
exports.rateToWeight = rateToWeight;
/**
* @description 将数组转成100%的概率Prob。如果是嵌套随机结构,则返回对应的Avg。 如果都不是(比如数字或字符串或json),则转成单元素的Avg,保证100%返回。
*/
export const make = (arg) => {
const make = (arg) => {
if (Array.isArray(arg)) {
let p = [];
p.length = arg.length;
return new Prob(arg.map(e => {
return makeByJson(e) || e;
return (0, exports.makeByJson)(e) || e;
}), p.map(_e => {
return 1.0;
}));
}
let r = makeByJson(arg);
let r = (0, exports.makeByJson)(arg);
if (r) {
return r;
}
return new Avg([arg]);
};
exports.make = make;
/**
* @description 用约定结构的嵌套结构数组来构建嵌套随机结构。
* {"avg_v": [{"prob_p": [0.5,0.2,0.8], "prob_v": [{"rate_p": [0.9, 1.0], "rate_v": [{"a":1}, {"b":2}]}, 200, 500]}, {"weight_w": [5, 8, 10, 20], "weight_v": ["a", "b", "c"]} ]}
......@@ -99,29 +107,30 @@ export const make = (arg) => {
*
* 如果内容不符合嵌套的结构,则认为是最终值。
*/
export const makeByJson = (cfg) => {
const makeByJson = (cfg) => {
if (Array.isArray(cfg.avg_v)) {
return new Avg(cfg.avg_v.map(e => {
return makeByJson(e) || e;
return (0, exports.makeByJson)(e) || e;
}));
}
else if (Array.isArray(cfg.weight_w) && Array.isArray(cfg.weight_v)) {
return new Weight(cfg.weight_v.map(e => {
return makeByJson(e) || e;
return (0, exports.makeByJson)(e) || e;
}), cfg.weight_w);
}
else if (Array.isArray(cfg.rate_p) && Array.isArray(cfg.rate_v)) {
return new Weight(cfg.rate_v.map(e => {
return makeByJson(e) || e;
}), rateToWeight(cfg.rate_p));
return (0, exports.makeByJson)(e) || e;
}), (0, exports.rateToWeight)(cfg.rate_p));
}
else if (Array.isArray(cfg.prob_p) && Array.isArray(cfg.prob_v)) {
return new Prob(cfg.prob_v.map(e => {
return makeByJson(e) || e;
return (0, exports.makeByJson)(e) || e;
}), cfg.prob_p);
}
return null;
};
exports.makeByJson = makeByJson;
// 嵌套迭代选择
const nextSelect = (rand, r, result) => {
if (r instanceof Avg) {
......
{"version":3,"file":"nest_prob.js","sourceRoot":"","sources":["../src/nest_prob.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"nest_prob.js","sourceRoot":"","sources":["../src/nest_prob.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LC = exports.RC4 = exports.Pcg = exports.Rand = exports.RandType = void 0;
// ============================== 导入
import { imul, INT32_SIZE, INT32_MAX, UINT32_MAX, add64, mul64 } from "./math";
const math_1 = require("./math");
// ============================== 导出
const BIT_53 = 9007199254740992.0;
const BIT_27 = 134217728.0;
export var RandType;
var RandType;
(function (RandType) {
RandType[RandType["Pcg"] = 0] = "Pcg";
RandType[RandType["LC"] = 1] = "LC";
RandType[RandType["RC4"] = 2] = "RC4";
})(RandType || (RandType = {}));
export class Rand {
})(RandType || (exports.RandType = RandType = {}));
class Rand {
/**
* @param seed: [0, 0xffffffff] 整数值
*/
......@@ -98,6 +101,7 @@ export class Rand {
}
}
}
exports.Rand = Rand;
const INC_HI = 0x14057b7e;
const INC_LO = 0xf767814f;
const MUL_HI = 0x5851f42d;
......@@ -107,7 +111,7 @@ const MUL_LO = 0x4c957f2d;
* Generate a random 32 bit integer. This uses the PCG algorithm, described here: http://www.pcg-random.org/
* https://github.com/thomcc/pcg-random
*/
export class Pcg {
class Pcg {
/**
* @param seedHi: 种子 高32位,范围:[0, 0xffffffff] 整数值
* @param seedLo: 种子 低32位:范围:[0, 0xffffffff] 整数值
......@@ -134,15 +138,15 @@ export class Pcg {
this.discard(1);
}
maxNumber() {
return UINT32_MAX;
return math_1.UINT32_MAX;
}
next() {
// save current state (what we'll use for this number)
const oldHi = this.state[0];
const oldLo = this.state[1];
// churn LCG.
mul64(oldHi, oldLo, MUL_HI, MUL_LO, this.state);
add64(this.state[0], this.state[1], this.state[2], this.state[3], this.state);
(0, math_1.mul64)(oldHi, oldLo, MUL_HI, MUL_LO, this.state);
(0, math_1.add64)(this.state[0], this.state[1], this.state[2], this.state[3], this.state);
// get least sig. 32 bits of ((oldstate >> 18) ^ oldstate) >> 27
let xsHi = oldHi >>> 18;
let xsLo = ((oldLo >>> 18) | (oldHi << 14)) >>> 0;
......@@ -157,8 +161,8 @@ export class Pcg {
}
discard(count) {
while (count-- > 0) {
mul64(this.state[0], this.state[1], MUL_HI, MUL_LO, this.state);
add64(this.state[0], this.state[1], this.state[2], this.state[3], this.state);
(0, math_1.mul64)(this.state[0], this.state[1], MUL_HI, MUL_LO, this.state);
(0, math_1.add64)(this.state[0], this.state[1], this.state[2], this.state[3], this.state);
}
}
/// Get the state of the random number generator.
......@@ -170,6 +174,7 @@ export class Pcg {
this.state = state;
}
}
exports.Pcg = Pcg;
const ARRAY_SIZE = 624;
const ARRAY_MAX = ARRAY_SIZE - 1;
const M = 397;
......@@ -179,19 +184,19 @@ const A = 0x9908b0df;
* RC4 的随机种子. 提供32位随机性
* https://github.com/ckknight/random-js
*/
export class RC4 {
class RC4 {
constructor(seed = 0) {
let data = new Int32Array(ARRAY_SIZE);
let previous = 0;
data[0] = previous = (seed || (Math.random() * 0xffffffff)) >>> 0;
for (let i = 1; i < ARRAY_SIZE; i++) {
data[i] = previous = (imul(previous ^ (previous >>> 30), 0x6c078965) + i) | 0;
data[i] = previous = ((0, math_1.imul)(previous ^ (previous >>> 30), 0x6c078965) + i) | 0;
}
this.data = data;
this.index = ARRAY_SIZE;
}
maxNumber() {
return UINT32_MAX;
return math_1.UINT32_MAX;
}
next() {
if (this.index >= ARRAY_SIZE) {
......@@ -234,35 +239,36 @@ export class RC4 {
let k = 0;
let tmp = 0;
for (; k < ARRAY_SIZE_MINUS_M; k++) {
tmp = (data[k] & INT32_SIZE) | (data[(k + 1)] & INT32_MAX);
tmp = (data[k] & math_1.INT32_SIZE) | (data[(k + 1)] & math_1.INT32_MAX);
data[k] = data[(k + M)] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);
}
for (; k < ARRAY_MAX; k++) {
tmp = (data[k] & INT32_SIZE) | (data[(k + 1)] & INT32_MAX);
tmp = (data[k] & math_1.INT32_SIZE) | (data[(k + 1)] & math_1.INT32_MAX);
data[k] = data[(k - ARRAY_SIZE_MINUS_M)] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);
}
tmp = (data[ARRAY_MAX] & INT32_SIZE) | (data[0] & INT32_MAX);
tmp = (data[ARRAY_MAX] & math_1.INT32_SIZE) | (data[0] & math_1.INT32_MAX);
data[ARRAY_MAX] = data[M - 1] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);
}
}
exports.RC4 = RC4;
const RANDOM_A = 16807;
const RANDOM_Q = 127773;
const RANDOM_MASK = 123459876;
const RANDOM_AQR = INT32_MAX;
const RANDOM_AQR = math_1.INT32_MAX;
// Linear congruence 线性同余算法
export class LC {
class LC {
constructor(seed = 0) {
this.seed = (seed || (Math.random() * 0xffffffff)) >>> 0;
}
maxNumber() {
return INT32_MAX;
return math_1.INT32_MAX;
}
next() {
this.seed ^= RANDOM_MASK;
let k = Math.floor(this.seed / RANDOM_Q);
this.seed = RANDOM_A * this.seed - k * RANDOM_AQR;
if (this.seed < 0) {
this.seed += INT32_MAX;
this.seed += math_1.INT32_MAX;
}
return this.seed;
}
......@@ -282,4 +288,5 @@ export class LC {
this.seed = state;
}
}
exports.LC = LC;
//# sourceMappingURL=rand.js.map
\ No newline at end of file
{"version":3,"file":"rand.js","sourceRoot":"","sources":["../src/rand.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"rand.js","sourceRoot":"","sources":["../src/rand.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
import * as bigInt1 from "./biginteger";
export * from "./util";
export declare const bigInt: bigInt1.BigIntegerStatic;
export declare const u64ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const u128ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const u256ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const i64ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const i128ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const i256ToBuffer: (n: bigint, littleEnd?: boolean) => [number, Uint8Array];
export declare const bufferToU64: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const bufferToU128: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const bufferToU256: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const bufferToI64: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const bufferToI128: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const bufferToI256: (buf: Uint8Array, littleEnd?: boolean) => bigint;
export declare const u64Unwrap: (v: bigint) => [number, Uint8Array];
export declare const u128Unwrap: (v: bigint) => [number, Uint8Array];
export declare const u256Unwrap: (v: bigint) => [number, Uint8Array];
export declare const i64Unwrap: (v: bigint) => [number, Uint8Array];
export declare const i128Unwrap: (v: bigint) => [number, Uint8Array];
export declare const i256Unwrap: (v: bigint) => [number, Uint8Array];
export declare const u64Merge: (param: [number, Uint8Array]) => bigint;
export declare const u128Merge: (param: [number, Uint8Array]) => bigint;
export declare const u256Merge: (param: [number, Uint8Array]) => bigint;
export declare const i64Merge: (param: [number, Uint8Array]) => bigint;
export declare const i128Merge: (param: [number, Uint8Array]) => bigint;
export declare const i256Merge: (param: [number, Uint8Array]) => bigint;
export declare class BigU64 {
big: bigint;
constructor(v: Uint8Array);
}
export declare class BigU128 {
big: bigint;
constructor(v: Uint8Array);
}
export * from "./bigint/index";
export * from "./math";
export * from "./nest_prob";
export * from "./rand";
export * from "./timeline";
export * from "./tween";
/**
* 数学库
*/
export declare const UINT32_MAX: number;
export declare const UINT32_SIZE: number;
export declare const INT32_SIZE: number;
export declare const INT32_MAX: number;
/**
* 浮点误差
*/
export declare const EPISION = 0.001;
/**
* 处理显示上的浮点误差, 选择 12 是一个经验的选择,一般选12就能解决掉大部分0001和0009问题
* 遇到浮点数误差问题时可以直接使用 https://github.com/dt-fe/number-precision
* 一个用于任意精度的十进制算术的小型,快速的JavaScript的库。 http://mikemcl.github.io/big.js
*/
export declare const strip: (num: number, precision?: number) => number;
/**
* 返回被视为 32 位带符号整数的两个数字的积。和C的运算一致,会自动溢出32以上的值
*/
export declare const imul: any;
export declare const mul64: (aHi: number, aLo: number, bHi: number, bLo: number, out: Uint32Array) => void;
export declare const add64: (aHi: number, aLo: number, bHi: number, bLo: number, out: Uint32Array) => void;
/**
* 取小数点后n位数,其后的数四舍五入
* @param nfloat 数字
* @param n 前n位
* @return 数字
*/
export declare const round: (nfloat: number, n: number) => number;
/**
* 取小数点前n位数,其后的数四舍五入
* @param nint 数字
* @param n 前n位
* @return 数字
*/
export declare const roundInt: (nint: number, n: number) => number;
/**
* @description 获得一个指定范围(左闭右开区间)的随机浮点数
* @example
*
*/
export declare const randomFloat: (v1: number, v2: number) => number;
/**
* @description 获得一个指定范围(闭区间)的随机整数
* @example
*
*/
export declare const randomInt: (v1: number, v2: number) => number;
/**
* @description 获得一个安全的随机32位整数
* @example
*
*/
/**
* @description 获得一组安全的随机32位整数
* @example
*
*/
export declare const cryptoRandomInts: (array: Uint32Array) => ArrayBufferView;
/**
* @description 数组乱序
* @example
*
*/
export declare const shuffle: (array: any[]) => void;
/**
* @description 获得两个向量夹角的方向,正数为顺时针,负数为逆时针
* @example
*/
export declare const getDirection: (vx1: number, vy1: number, vx2: number, vy2: number) => number;
/**
* @description 获得两个向量夹角的度数
* @example
*/
export declare const getAngle: (vx1: number, vy1: number, vx2: number, vy2: number) => number;
/**
* @description 线性插值 interpolation
* @example
*/
export declare const linear: (t: number, p0: number, p1: number) => number;
/**
* @description 阶乘
* @example
*/
export declare const factorial: (n: number) => number;
/**
* @description 伯恩斯坦 多项式
* @example
*/
export declare const bernstein: (i: number, n: number) => number;
/**
* @description Catmull-Rom 样条插值 interpolation
* @example
*/
export declare const catmullRom: (t: number, p0: number, p1: number, p2: number, p3: number) => number;
/**
* @description 截取num在[min, max]之间
* @note 假设:min必须小于等于max
*/
export declare const clamp: (num: number, min: number, max: number) => number;
/**
* @description 3次平滑插值
*/
export declare const smoothstep: (x: number, min: number, max: number) => number;
/**
* @description 5次平滑插值
*/
export declare const smootherstep: (x: number, min: number, max: number) => number;
/**
* @description 角度转弧度
*/
export declare const degreeToRadian: (degrees: number) => number;
/**
* @description 弧度转角度
*/
export declare const radianToDegree: (radians: number) => number;
/**
* @description 是否为二的冥
*/
export declare const isPowerOfTwo: (value: number) => boolean;
/**
* @description 最近的2的冥的整数
*/
export declare const nearestPowerOfTwo: (value: number) => number;
/**
* @description 下一个2的冥的数
*/
export declare const nextPowerOfTwo: (value: number) => number;
/**
* @description 浮点数相等
*/
export declare const equal: (num1: number, num2: number) => boolean;
/**
* 嵌套概率结构, 支持3种结构。
* 平均Avg, 表示里面每个元素按相同几率被选择1个。
* 权重Weight, 表示里面每个元素根据权重被选择1个或0个。 权重必须是整数。 允许权重数量大于内容, 这样允许可以返回undefined。
* 概率Prob, 表示里面每个元素都有概率被选中。 概率必须是[0, 1.0)的浮点数。
* 支持多层嵌套, 如果被选择的还是Avg,Weight,Prob,则继续选择。
* 顺序概率Rate, 表示里面的元素按顺序依次检查能否按几率被选中, 如果选中则返回。 仅声明使用,实际转化成了权重。
*/
import { Rand } from "./rand";
export declare class Avg {
values: any[];
constructor(values: any[]);
select(rand: Rand, result: any[]): void;
}
export declare class Weight extends Avg {
weights: number[];
amount: number;
constructor(values: any[], weights: number[]);
select(rand: Rand, result: any[]): void;
}
export declare class Prob extends Avg {
probs: number[];
constructor(values: any[], probs: number[]);
select(rand: Rand, result: any[]): void;
}
export declare const rateToWeight: (arr: number[]) => number[];
/**
* @description 将数组转成100%的概率Prob。如果是嵌套随机结构,则返回对应的Avg。 如果都不是(比如数字或字符串或json),则转成单元素的Avg,保证100%返回。
*/
export declare const make: (arg: any[] | number | any) => Avg;
/**
* @description 用约定结构的嵌套结构数组来构建嵌套随机结构。
* {"avg_v": [{"prob_p": [0.5,0.2,0.8], "prob_v": [{"rate_p": [0.9, 1.0], "rate_v": [{"a":1}, {"b":2}]}, 200, 500]}, {"weight_w": [5, 8, 10, 20], "weight_v": ["a", "b", "c"]} ]}
* 嵌套的结构如下:
* {"avg_v": [...内容数组]},
* {"weight_w": [...权重数组], "weight_v": [...与权重数组等长的内容数组]},
* {"rate_p": [...概率数组], "rate_v": [...与概率数组等长的内容数组]},
* {"prob_p": [...概率数组], "prob_v": [...与概率数组等长的内容数组]},
*
* 如果内容不符合嵌套的结构,则认为是最终值。
*/
export declare const makeByJson: (cfg: any) => Avg;
export declare enum RandType {
Pcg = 0,
LC = 1,
RC4 = 2
}
export declare class Rand {
private data;
/**
* @param seed: [0, 0xffffffff] 整数值
*/
constructor(seed?: number, type?: RandType);
init(data: Random): void;
/**
* @description 返回 [0, this.data.maxNumber()] 的 随机 整数
*/
next(): number;
discard(count: number): void;
getState(): any;
setState(state: any): void;
nextF64(): number;
/**
* @description 返回 0-1 的 随机小数
*/
nextFrac(): number;
/**
* @description 获得一个指定范围(左闭右开区间)的随机浮点数
*/
nextFloat(v1: number, v2: number): number;
/**
* @description 获得一个指定范围(闭区间)的随机整数
*/
nextInt(v1: number, v2: number): number;
/**
* @description 数组乱序
*/
shuffle(array: any[]): void;
}
export interface Random {
/**
* 返回:算法 能处理的 最大整数
*/
maxNumber(): number;
/**
* 返回:[0, this.maxNumber()] 的 整数值
*/
next(): number;
discard(count: number): any;
getState(): any;
setState(state: any): any;
}
/**
* PCG 的随机种子. 提供32位随机性
* Generate a random 32 bit integer. This uses the PCG algorithm, described here: http://www.pcg-random.org/
* https://github.com/thomcc/pcg-random
*/
export declare class Pcg implements Random {
state: Uint32Array;
/**
* @param seedHi: 种子 高32位,范围:[0, 0xffffffff] 整数值
* @param seedLo: 种子 低32位:范围:[0, 0xffffffff] 整数值
* @param incHi: 增量器 高32位:范围:[0, 0xffffffff] 整数值
* @param incLo: 增量器 低32位:范围:[0, 0xffffffff] 整数值
*/
constructor(seedHi?: number, seedLo?: number, incHi?: number, incLo?: number);
maxNumber(): number;
next(): number;
discard(count: number): void;
getState(): Uint32Array;
setState(state: Uint32Array): void;
}
/**
* RC4 的随机种子. 提供32位随机性
* https://github.com/ckknight/random-js
*/
export declare class RC4 implements Random {
private data;
private index;
constructor(seed?: number);
maxNumber(): number;
next(): number;
discard(count: number): void;
getState(): {
data: Int32Array;
index: number;
};
setState(state: {
data: Int32Array;
index: number;
}): void;
private value;
private refreshData;
}
export declare class LC implements Random {
private seed;
constructor(seed?: number);
maxNumber(): number;
next(): number;
discard(count: number): void;
getState(): number;
setState(state: number): void;
}
/**
* 时间线函数
* @packageDocumentation
*/
/**
* @description 线性折线
* @param k 插值点的百分比位置
* @param v 关键点数据数组
* @example
*/
export declare function linearTimeline(k: number, v: number[]): number;
/**
* @description n阶贝塞尔曲线
* @param k 插值点的百分比位置
* @param v 关键点数据数组
* @example
*/
export declare function bezierTimeline(k: number, v: number[]): number;
/**
* @description Catmull-Rom 样条曲线
* @param k 插值点的百分比位置
* @param v 关键点数据数组
* @example
*/
export declare function catmullRomTimeline(k: number, v: number[]): number;
/**
* 缓动函数:
* Linear:无缓动效果;
* + 注: linear 只有一种效果匀速
* Quadratic:二次方的缓动(t^2);
* Cubic:三次方的缓动(t^3);
* Quartic:四次方的缓动(t^4);
* Quintic:五次方的缓动(t^5);
* Sinusoidal:正弦曲线的缓动(sin(t));
* Exponential:指数曲线的缓动(2^t);
* Circular:圆形曲线的缓动(sqrt(1-t^2));
* Elastic:指数衰减的正弦曲线缓动;
* Back:超过范围的三次方缓动((s+1)*t^3 - s*t^2);
* Bounce:指数衰减的反弹缓动;
*
* 每种缓动函数都由三种变化:
*
* 1. In 加速
* 2. Out 减速
* 3. InOut 先加速后减速
*
* 实现参考: http://easings.net/cn
* 效果参考:https://developer.playcanvas.com/en/tutorials/tweening/
*/
/**
* @description 计算缓动的当前值
* @param t current time, 当前时间
* @param b beginning value, 初始值 (开始的属性值)
* @param e ending value, 结束值 (结束的属性值)
* @param d duration, 持续时间 解释为:运动的总时间
* @param func select rase function, 选择的缓动函数
* @example
* [0ms, 6ms]的时间内,以曲线linear的形式,从 5 移到 10;返回:2ms 时刻的数字
* let position = calcTween(2, 5, 10, 6, linearTween);
* 如果想要做完整插值,得写个定时器去推;
*/
export declare function calcTween(t: number, b: number, e: number, d: number, func: Function): number;
/**
* @description 无缓动效果;
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function linearTween(k: number): number;
/**
* @description 二次缓动(t^2)
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quadInTween(k: number): number;
/**
* @description 二次缓动(t^2) 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quadOutTween(k: number): number;
/**
* @description 二次缓动(t^2) 先加速后减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quadInOutTween(k: number): number;
/**
* @description 三次缓动(t^3)
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function cubicInTween(k: number): number;
/**
* @description 三次缓动(t^3) 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function cubicOutTween(k: number): number;
/**
* @description 三次缓动(t^3) 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function cubicInOutTween(k: number): number;
/**
* @description 四次缓动(t^4)
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quartInTween(k: number): number;
/**
* @description 四次缓动(t^4) 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quartOutTween(k: number): number;
/**
* @description 四次缓动(t^4) 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quartInOutTween(k: number): number;
/**
* @description 五次缓动(t^5)
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quintInTween(k: number): number;
/**
* @description 五次缓动(t^5) 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quintOutTween(k: number): number;
/**
* @description 五次缓动(t^5) 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function quintInOutTween(k: number): number;
/**
* @description sin缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function sinInTween(k: number): number;
/**
* @description sin缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function sinOutTween(k: number): number;
/**
* @description sin缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function sinInOutTween(k: number): number;
/**
* @description exp缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function expInTween(k: number): number;
/**
* @description exp缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function expOutTween(k: number): number;
/**
* @description exp缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function expInOutTween(k: number): number;
/**
* @description circle缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function circInTween(k: number): number;
/**
* @description circle缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function circOutTween(k: number): number;
/**
* @description circle缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function circInOutTween(k: number): number;
/**
* @description 指数衰减的正弦曲线缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
*/
export declare function elasticInTween(k: number): number;
/**
* @description 指数衰减的正弦曲线缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
*/
export declare function elasticOutTween(k: number): number;
/**
* @description 指数衰减的正弦曲线缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
*/
export declare function elasticInOutTween(k: number): number;
/**
* @description 超过范围的三次方缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
* @note 参考:https://github.com/sole/tween.js/blob/master/src/Tween.js
*/
export declare function backInTween(k: number): number;
/**
* @description 超过范围的三次方缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
* @note 参考:https://github.com/sole/tween.js/blob/master/src/Tween.js
*/
export declare function backOutTween(k: number): number;
/**
* @description 超过范围的三次方缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果
* @note 参考:https://github.com/sole/tween.js/blob/master/src/Tween.js
*/
export declare function backInOutTween(k: number): number;
/**
* @description 指数衰减的反弹缓动
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function bounceInTween(k: number): number;
/**
* @description 指数衰减的反弹缓动 减速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function bounceOutTween(k: number): number;
/**
* @description 指数衰减的反弹缓动 先减速后加速
* @param k 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围:[0, 1]
*/
export declare function bounceInOutTween(k: number): number;
/**
* 三次 二维平面 贝塞尔曲线
* 可用 [cubic-bezier](https://cubic-bezier.com/) 工具 来 查看效果
*/
export declare class CubicBezier {
px3: number;
px2: number;
px1: number;
py1: number;
py2: number;
py3: number;
epsilon: number;
/**
* @param a, b, c, d: cubic-bezier 的 四个值,取值范围其实不限;但是一般都建议 [0, 1]
*/
constructor(a: any, b: any, c: any, d: any);
/**
* 插值函数
* @param x 插值点百分比位置,取值范围:[0, 1]
* @returns 采样结果,值范围由a b c d决定,但一般值范围:[0, 1]
*/
solve(x: any): number;
private getX;
private getY;
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment