ddan-js 2.8.12 → 2.8.14
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/bin/ddan-js.browser.js +1 -1
- package/bin/ddan-js.esm.js +1 -1
- package/bin/ddan-js.js +1 -1
- package/bin/lib/modules/hook/modules/bezier.js +19 -15
- package/bin/types/browser.d.ts +4 -2
- package/bin/types/index.d.ts +4 -2
- package/bin/types/modules/hook/index.d.ts +2 -1
- package/bin/types/modules/hook/modules/bezier.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lerpAverage = void 0;
|
|
4
3
|
const lerp = (start, end, t) => {
|
|
5
4
|
// (1 - t) * p0.x + t * p1.x,
|
|
6
5
|
return start * (1 - t) + end * t;
|
|
7
6
|
};
|
|
7
|
+
const proportion = (start, end, current) => {
|
|
8
|
+
if (start === end)
|
|
9
|
+
return 0;
|
|
10
|
+
return (current - start) / (end - start);
|
|
11
|
+
};
|
|
8
12
|
const bezier1 = (p0, p1, t) => {
|
|
9
13
|
return {
|
|
10
14
|
x: lerp(p0.x, p1.x, t),
|
|
@@ -72,8 +76,8 @@ const bezierCurve = (points, t) => {
|
|
|
72
76
|
}
|
|
73
77
|
return { x, y };
|
|
74
78
|
};
|
|
75
|
-
const lerpAverage = (points, step //
|
|
76
|
-
) => {
|
|
79
|
+
const lerpAverage = (points, step, //
|
|
80
|
+
type = '') => {
|
|
77
81
|
if (points.length <= 0)
|
|
78
82
|
return 0;
|
|
79
83
|
if (points.length === 1)
|
|
@@ -83,35 +87,35 @@ const lerpAverage = (points, step //
|
|
|
83
87
|
const values = [];
|
|
84
88
|
// 调整下排序
|
|
85
89
|
const _points = points.slice().sort((a, b) => a.x - b.x);
|
|
90
|
+
const size = _points.length;
|
|
86
91
|
const start = _points[0].x;
|
|
87
|
-
const end = _points[
|
|
92
|
+
const end = _points[size - 1].x;
|
|
88
93
|
// 遍历每个插值点
|
|
89
94
|
for (let axis = start; axis <= end; axis += step) {
|
|
90
95
|
let value = 0;
|
|
91
96
|
// 找到 t 所在区间 [t1, t2]
|
|
92
|
-
for (let i = 0; i <
|
|
97
|
+
for (let i = 0; i < size - 1; i++) {
|
|
93
98
|
const p1 = _points[i];
|
|
94
99
|
const p2 = _points[i + 1];
|
|
95
100
|
if (axis >= p1.x && axis <= p2.x) {
|
|
96
|
-
if (
|
|
97
|
-
|
|
101
|
+
if (type === 'bezier') {
|
|
102
|
+
const t = proportion(p1.x, p2.x, axis);
|
|
103
|
+
value = bezier1(p1, p2, t).y;
|
|
98
104
|
}
|
|
99
105
|
else {
|
|
100
|
-
|
|
101
|
-
value =
|
|
106
|
+
// 取左侧值
|
|
107
|
+
value = p1.y;
|
|
102
108
|
}
|
|
103
|
-
// 线性插值公式
|
|
104
109
|
break;
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
112
|
// 如果 t 超出范围,使用最后一个已知值
|
|
108
|
-
if (axis > _points[
|
|
109
|
-
value = _points[
|
|
113
|
+
if (axis > _points[size - 1].x) {
|
|
114
|
+
value = _points[size - 1].y;
|
|
110
115
|
}
|
|
111
116
|
values.push(value);
|
|
112
117
|
}
|
|
113
|
-
const sum = values.reduce((acc, val) => acc + val, 0)
|
|
118
|
+
const sum = values.reduce((acc, val) => acc + val, 0);
|
|
114
119
|
return sum / values.length;
|
|
115
120
|
};
|
|
116
|
-
exports.
|
|
117
|
-
exports.default = { bezier1, bezier2, bezier3, bezier, bezierCurve, lerp, lerpAverage: exports.lerpAverage };
|
|
121
|
+
exports.default = { bezier1, bezier2, bezier3, bezier, bezierCurve, lerp, lerpAverage, proportion };
|
package/bin/types/browser.d.ts
CHANGED
|
@@ -339,7 +339,8 @@ declare const dHook: {
|
|
|
339
339
|
bezier3: (p0: import("./typings").Ddan.IPoint, p1: import("./typings").Ddan.IPoint, p2: import("./typings").Ddan.IPoint, p3: import("./typings").Ddan.IPoint, t: number) => import("./typings").Ddan.IPoint;
|
|
340
340
|
bezier: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
341
341
|
bezierCurve: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
342
|
-
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number) => number;
|
|
342
|
+
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
343
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
343
344
|
logString: (data: any) => string;
|
|
344
345
|
logParse: (logStr: string) => string;
|
|
345
346
|
logRString: (data: any) => Promise<string>;
|
|
@@ -697,7 +698,8 @@ declare const _default: {
|
|
|
697
698
|
bezier: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
698
699
|
bezierCurve: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
699
700
|
lerp: (start: number, end: number, t: number) => number;
|
|
700
|
-
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number) => number;
|
|
701
|
+
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
702
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
701
703
|
logString: (data: any) => string;
|
|
702
704
|
logParse: (logStr: string) => string;
|
|
703
705
|
logRString: (data: any) => Promise<string>;
|
package/bin/types/index.d.ts
CHANGED
|
@@ -339,7 +339,8 @@ declare const dHook: {
|
|
|
339
339
|
bezier3: (p0: import("./typings").Ddan.IPoint, p1: import("./typings").Ddan.IPoint, p2: import("./typings").Ddan.IPoint, p3: import("./typings").Ddan.IPoint, t: number) => import("./typings").Ddan.IPoint;
|
|
340
340
|
bezier: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
341
341
|
bezierCurve: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
342
|
-
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number) => number;
|
|
342
|
+
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
343
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
343
344
|
logString: (data: any) => string;
|
|
344
345
|
logParse: (logStr: string) => string;
|
|
345
346
|
logRString: (data: any) => Promise<string>;
|
|
@@ -733,7 +734,8 @@ declare const _default: {
|
|
|
733
734
|
bezier: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
734
735
|
bezierCurve: (points: import("./typings").Ddan.IPoint[], t: number) => import("./typings").Ddan.IPoint;
|
|
735
736
|
lerp: (start: number, end: number, t: number) => number;
|
|
736
|
-
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number) => number;
|
|
737
|
+
lerpAverage: (points: import("./typings").Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
738
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
737
739
|
logString: (data: any) => string;
|
|
738
740
|
logParse: (logStr: string) => string;
|
|
739
741
|
logRString: (data: any) => Promise<string>;
|
|
@@ -31,7 +31,8 @@ declare const _default: {
|
|
|
31
31
|
bezier: (points: Ddan.IPoint[], t: number) => Ddan.IPoint;
|
|
32
32
|
bezierCurve: (points: Ddan.IPoint[], t: number) => Ddan.IPoint;
|
|
33
33
|
lerp: (start: number, end: number, t: number) => number;
|
|
34
|
-
lerpAverage: (points: Ddan.IPoint[], step: number) => number;
|
|
34
|
+
lerpAverage: (points: Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
35
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
35
36
|
logString: (data: any) => string;
|
|
36
37
|
logParse: (logStr: string) => string;
|
|
37
38
|
logRString: (data: any) => Promise<string>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Ddan } from '../../../typings';
|
|
2
|
-
export declare const lerpAverage: (points: Ddan.IPoint[], step: number) => number;
|
|
3
2
|
declare const _default: {
|
|
4
3
|
bezier1: (p0: Ddan.IPoint, p1: Ddan.IPoint, t: number) => Ddan.IPoint;
|
|
5
4
|
bezier2: (p0: Ddan.IPoint, p1: Ddan.IPoint, p2: Ddan.IPoint, t: number) => Ddan.IPoint;
|
|
@@ -7,6 +6,7 @@ declare const _default: {
|
|
|
7
6
|
bezier: (points: Ddan.IPoint[], t: number) => Ddan.IPoint;
|
|
8
7
|
bezierCurve: (points: Ddan.IPoint[], t: number) => Ddan.IPoint;
|
|
9
8
|
lerp: (start: number, end: number, t: number) => number;
|
|
10
|
-
lerpAverage: (points: Ddan.IPoint[], step: number) => number;
|
|
9
|
+
lerpAverage: (points: Ddan.IPoint[], step: number, type?: "" | "bezier") => number;
|
|
10
|
+
proportion: (start: number, end: number, current: number) => number;
|
|
11
11
|
};
|
|
12
12
|
export default _default;
|