@esengine/ecs-framework-math 1.0.5 → 2.9.0

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.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/bin/Animation/Easing.d.ts +244 -0
  3. package/bin/Animation/Easing.d.ts.map +1 -0
  4. package/bin/Animation/Easing.js +407 -0
  5. package/bin/Animation/Easing.js.map +1 -0
  6. package/bin/Animation/Interpolation.d.ts +172 -0
  7. package/bin/Animation/Interpolation.d.ts.map +1 -0
  8. package/bin/Animation/Interpolation.js +327 -0
  9. package/bin/Animation/Interpolation.js.map +1 -0
  10. package/bin/Animation/index.d.ts +8 -0
  11. package/bin/Animation/index.d.ts.map +1 -0
  12. package/bin/Animation/index.js +8 -0
  13. package/bin/Animation/index.js.map +1 -0
  14. package/bin/Circle.d.ts +277 -0
  15. package/bin/Circle.d.ts.map +1 -0
  16. package/bin/Circle.js +496 -0
  17. package/bin/Circle.js.map +1 -0
  18. package/bin/Collision/CollisionDetector.d.ts +114 -0
  19. package/bin/Collision/CollisionDetector.d.ts.map +1 -0
  20. package/bin/Collision/CollisionDetector.js +353 -0
  21. package/bin/Collision/CollisionDetector.js.map +1 -0
  22. package/bin/Collision/index.d.ts +7 -0
  23. package/bin/Collision/index.d.ts.map +1 -0
  24. package/bin/Collision/index.js +7 -0
  25. package/bin/Collision/index.js.map +1 -0
  26. package/bin/Color.d.ts +277 -0
  27. package/bin/Color.d.ts.map +1 -0
  28. package/bin/Color.js +470 -0
  29. package/bin/Color.js.map +1 -0
  30. package/bin/Fixed32.d.ts +266 -0
  31. package/bin/Fixed32.d.ts.map +1 -0
  32. package/bin/Fixed32.js +381 -0
  33. package/bin/Fixed32.js.map +1 -0
  34. package/bin/FixedMath.d.ts +109 -0
  35. package/bin/FixedMath.d.ts.map +1 -0
  36. package/bin/FixedMath.js +264 -0
  37. package/bin/FixedMath.js.map +1 -0
  38. package/bin/FixedVector2.d.ts +293 -0
  39. package/bin/FixedVector2.d.ts.map +1 -0
  40. package/bin/FixedVector2.js +413 -0
  41. package/bin/FixedVector2.js.map +1 -0
  42. package/bin/MathUtils.d.ts +312 -0
  43. package/bin/MathUtils.d.ts.map +1 -0
  44. package/bin/MathUtils.js +500 -0
  45. package/bin/MathUtils.js.map +1 -0
  46. package/bin/Matrix3.d.ts +288 -0
  47. package/bin/Matrix3.d.ts.map +1 -0
  48. package/bin/Matrix3.js +542 -0
  49. package/bin/Matrix3.js.map +1 -0
  50. package/bin/Rectangle.d.ts +266 -0
  51. package/bin/Rectangle.d.ts.map +1 -0
  52. package/bin/Rectangle.js +437 -0
  53. package/bin/Rectangle.js.map +1 -0
  54. package/bin/Vector2.d.ts +333 -0
  55. package/bin/Vector2.d.ts.map +1 -0
  56. package/bin/Vector2.js +484 -0
  57. package/bin/Vector2.js.map +1 -0
  58. package/bin/Vector3.d.ts +257 -0
  59. package/bin/Vector3.d.ts.map +1 -0
  60. package/bin/Vector3.js +372 -0
  61. package/bin/Vector3.js.map +1 -0
  62. package/bin/index.d.ts +25 -0
  63. package/bin/index.d.ts.map +1 -0
  64. package/bin/index.js +32 -0
  65. package/bin/index.js.map +1 -0
  66. package/bin/nodes/ColorNodes.d.ts +70 -0
  67. package/bin/nodes/ColorNodes.d.ts.map +1 -0
  68. package/bin/nodes/ColorNodes.js +427 -0
  69. package/bin/nodes/ColorNodes.js.map +1 -0
  70. package/bin/nodes/FixedNodes.d.ts +98 -0
  71. package/bin/nodes/FixedNodes.d.ts.map +1 -0
  72. package/bin/nodes/FixedNodes.js +612 -0
  73. package/bin/nodes/FixedNodes.js.map +1 -0
  74. package/bin/nodes/FixedVectorNodes.d.ts +58 -0
  75. package/bin/nodes/FixedVectorNodes.d.ts.map +1 -0
  76. package/bin/nodes/FixedVectorNodes.js +330 -0
  77. package/bin/nodes/FixedVectorNodes.js.map +1 -0
  78. package/bin/nodes/VectorNodes.d.ts +62 -0
  79. package/bin/nodes/VectorNodes.d.ts.map +1 -0
  80. package/bin/nodes/VectorNodes.js +355 -0
  81. package/bin/nodes/VectorNodes.js.map +1 -0
  82. package/bin/nodes/index.d.ts +20 -0
  83. package/bin/nodes/index.d.ts.map +1 -0
  84. package/bin/nodes/index.js +27 -0
  85. package/bin/nodes/index.js.map +1 -0
  86. package/package.json +45 -26
  87. package/index.cjs +0 -2
  88. package/index.cjs.map +0 -1
  89. package/index.d.ts +0 -1968
  90. package/index.mjs +0 -2
  91. package/index.mjs.map +0 -1
  92. package/index.umd.js +0 -2
  93. package/index.umd.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ESEngine Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,244 @@
1
+ /**
2
+ * 缓动函数集合
3
+ *
4
+ * 提供各种常用的缓动函数,用于创建平滑的动画效果
5
+ * 所有函数接受时间参数 t (0-1),返回缓动后的值 (通常0-1)
6
+ */
7
+ export declare class Easing {
8
+ /**
9
+ * 线性缓动(无缓动)
10
+ * @param t 时间参数 (0-1)
11
+ * @returns 缓动值
12
+ */
13
+ static linear(t: number): number;
14
+ /**
15
+ * 二次方缓入
16
+ * @param t 时间参数 (0-1)
17
+ * @returns 缓动值
18
+ */
19
+ static quadIn(t: number): number;
20
+ /**
21
+ * 二次方缓出
22
+ * @param t 时间参数 (0-1)
23
+ * @returns 缓动值
24
+ */
25
+ static quadOut(t: number): number;
26
+ /**
27
+ * 二次方缓入缓出
28
+ * @param t 时间参数 (0-1)
29
+ * @returns 缓动值
30
+ */
31
+ static quadInOut(t: number): number;
32
+ /**
33
+ * 三次方缓入
34
+ * @param t 时间参数 (0-1)
35
+ * @returns 缓动值
36
+ */
37
+ static cubicIn(t: number): number;
38
+ /**
39
+ * 三次方缓出
40
+ * @param t 时间参数 (0-1)
41
+ * @returns 缓动值
42
+ */
43
+ static cubicOut(t: number): number;
44
+ /**
45
+ * 三次方缓入缓出
46
+ * @param t 时间参数 (0-1)
47
+ * @returns 缓动值
48
+ */
49
+ static cubicInOut(t: number): number;
50
+ /**
51
+ * 四次方缓入
52
+ * @param t 时间参数 (0-1)
53
+ * @returns 缓动值
54
+ */
55
+ static quartIn(t: number): number;
56
+ /**
57
+ * 四次方缓出
58
+ * @param t 时间参数 (0-1)
59
+ * @returns 缓动值
60
+ */
61
+ static quartOut(t: number): number;
62
+ /**
63
+ * 四次方缓入缓出
64
+ * @param t 时间参数 (0-1)
65
+ * @returns 缓动值
66
+ */
67
+ static quartInOut(t: number): number;
68
+ /**
69
+ * 五次方缓入
70
+ * @param t 时间参数 (0-1)
71
+ * @returns 缓动值
72
+ */
73
+ static quintIn(t: number): number;
74
+ /**
75
+ * 五次方缓出
76
+ * @param t 时间参数 (0-1)
77
+ * @returns 缓动值
78
+ */
79
+ static quintOut(t: number): number;
80
+ /**
81
+ * 五次方缓入缓出
82
+ * @param t 时间参数 (0-1)
83
+ * @returns 缓动值
84
+ */
85
+ static quintInOut(t: number): number;
86
+ /**
87
+ * 正弦缓入
88
+ * @param t 时间参数 (0-1)
89
+ * @returns 缓动值
90
+ */
91
+ static sineIn(t: number): number;
92
+ /**
93
+ * 正弦缓出
94
+ * @param t 时间参数 (0-1)
95
+ * @returns 缓动值
96
+ */
97
+ static sineOut(t: number): number;
98
+ /**
99
+ * 正弦缓入缓出
100
+ * @param t 时间参数 (0-1)
101
+ * @returns 缓动值
102
+ */
103
+ static sineInOut(t: number): number;
104
+ /**
105
+ * 指数缓入
106
+ * @param t 时间参数 (0-1)
107
+ * @returns 缓动值
108
+ */
109
+ static expoIn(t: number): number;
110
+ /**
111
+ * 指数缓出
112
+ * @param t 时间参数 (0-1)
113
+ * @returns 缓动值
114
+ */
115
+ static expoOut(t: number): number;
116
+ /**
117
+ * 指数缓入缓出
118
+ * @param t 时间参数 (0-1)
119
+ * @returns 缓动值
120
+ */
121
+ static expoInOut(t: number): number;
122
+ /**
123
+ * 圆形缓入
124
+ * @param t 时间参数 (0-1)
125
+ * @returns 缓动值
126
+ */
127
+ static circIn(t: number): number;
128
+ /**
129
+ * 圆形缓出
130
+ * @param t 时间参数 (0-1)
131
+ * @returns 缓动值
132
+ */
133
+ static circOut(t: number): number;
134
+ /**
135
+ * 圆形缓入缓出
136
+ * @param t 时间参数 (0-1)
137
+ * @returns 缓动值
138
+ */
139
+ static circInOut(t: number): number;
140
+ /**
141
+ * 回弹缓入
142
+ * @param t 时间参数 (0-1)
143
+ * @param s 回弹强度,默认1.70158
144
+ * @returns 缓动值
145
+ */
146
+ static backIn(t: number, s?: number): number;
147
+ /**
148
+ * 回弹缓出
149
+ * @param t 时间参数 (0-1)
150
+ * @param s 回弹强度,默认1.70158
151
+ * @returns 缓动值
152
+ */
153
+ static backOut(t: number, s?: number): number;
154
+ /**
155
+ * 回弹缓入缓出
156
+ * @param t 时间参数 (0-1)
157
+ * @param s 回弹强度,默认1.70158
158
+ * @returns 缓动值
159
+ */
160
+ static backInOut(t: number, s?: number): number;
161
+ /**
162
+ * 弹性缓入
163
+ * @param t 时间参数 (0-1)
164
+ * @param amplitude 振幅,默认1
165
+ * @param period 周期,默认0.3
166
+ * @returns 缓动值
167
+ */
168
+ static elasticIn(t: number, amplitude?: number, period?: number): number;
169
+ /**
170
+ * 弹性缓出
171
+ * @param t 时间参数 (0-1)
172
+ * @param amplitude 振幅,默认1
173
+ * @param period 周期,默认0.3
174
+ * @returns 缓动值
175
+ */
176
+ static elasticOut(t: number, amplitude?: number, period?: number): number;
177
+ /**
178
+ * 弹性缓入缓出
179
+ * @param t 时间参数 (0-1)
180
+ * @param amplitude 振幅,默认1
181
+ * @param period 周期,默认0.45
182
+ * @returns 缓动值
183
+ */
184
+ static elasticInOut(t: number, amplitude?: number, period?: number): number;
185
+ /**
186
+ * 跳跃缓入
187
+ * @param t 时间参数 (0-1)
188
+ * @returns 缓动值
189
+ */
190
+ static bounceIn(t: number): number;
191
+ /**
192
+ * 跳跃缓出
193
+ * @param t 时间参数 (0-1)
194
+ * @returns 缓动值
195
+ */
196
+ static bounceOut(t: number): number;
197
+ /**
198
+ * 跳跃缓入缓出
199
+ * @param t 时间参数 (0-1)
200
+ * @returns 缓动值
201
+ */
202
+ static bounceInOut(t: number): number;
203
+ /**
204
+ * 创建自定义缓动函数(组合多个缓动)
205
+ * @param easingFunctions 缓动函数数组
206
+ * @param weights 权重数组,默认均等
207
+ * @returns 组合后的缓动函数
208
+ */
209
+ static combine(easingFunctions: ((t: number) => number)[], weights?: number[]): (t: number) => number;
210
+ /**
211
+ * 创建分段缓动函数
212
+ * @param segments 分段配置数组,每段包含 {duration, easing}
213
+ * @returns 分段缓动函数
214
+ */
215
+ static piecewise(segments: Array<{
216
+ duration: number;
217
+ easing: (t: number) => number;
218
+ }>): (t: number) => number;
219
+ /**
220
+ * 创建反向缓动函数
221
+ * @param easing 原缓动函数
222
+ * @returns 反向缓动函数
223
+ */
224
+ static reverse(easing: (t: number) => number): (t: number) => number;
225
+ /**
226
+ * 创建镜像缓动函数(先正向再反向)
227
+ * @param easing 原缓动函数
228
+ * @returns 镜像缓动函数
229
+ */
230
+ static mirror(easing: (t: number) => number): (t: number) => number;
231
+ /** 平滑进入(常用于UI动画) */
232
+ static readonly smoothIn: typeof Easing.quadOut;
233
+ /** 平滑退出(常用于UI动画) */
234
+ static readonly smoothOut: typeof Easing.quadIn;
235
+ /** 快速进入(常用于出现动画) */
236
+ static readonly quickIn: typeof Easing.cubicOut;
237
+ /** 快速退出(常用于消失动画) */
238
+ static readonly quickOut: typeof Easing.cubicIn;
239
+ /** 自然运动(模拟物理) */
240
+ static readonly natural: typeof Easing.quartOut;
241
+ /** 强调效果(吸引注意力) */
242
+ static readonly emphasize: typeof Easing.backOut;
243
+ }
244
+ //# sourceMappingURL=Easing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Easing.d.ts","sourceRoot":"","sources":["../../src/Animation/Easing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,407 @@
1
+ /**
2
+ * 缓动函数集合
3
+ *
4
+ * 提供各种常用的缓动函数,用于创建平滑的动画效果
5
+ * 所有函数接受时间参数 t (0-1),返回缓动后的值 (通常0-1)
6
+ */
7
+ export class Easing {
8
+ // 线性缓动
9
+ /**
10
+ * 线性缓动(无缓动)
11
+ * @param t 时间参数 (0-1)
12
+ * @returns 缓动值
13
+ */
14
+ static linear(t) {
15
+ return t;
16
+ }
17
+ // 二次方缓动 (Quadratic)
18
+ /**
19
+ * 二次方缓入
20
+ * @param t 时间参数 (0-1)
21
+ * @returns 缓动值
22
+ */
23
+ static quadIn(t) {
24
+ return t * t;
25
+ }
26
+ /**
27
+ * 二次方缓出
28
+ * @param t 时间参数 (0-1)
29
+ * @returns 缓动值
30
+ */
31
+ static quadOut(t) {
32
+ return 1 - (1 - t) * (1 - t);
33
+ }
34
+ /**
35
+ * 二次方缓入缓出
36
+ * @param t 时间参数 (0-1)
37
+ * @returns 缓动值
38
+ */
39
+ static quadInOut(t) {
40
+ return t < 0.5 ? 2 * t * t : 1 - 2 * (1 - t) * (1 - t);
41
+ }
42
+ // 三次方缓动 (Cubic)
43
+ /**
44
+ * 三次方缓入
45
+ * @param t 时间参数 (0-1)
46
+ * @returns 缓动值
47
+ */
48
+ static cubicIn(t) {
49
+ return t * t * t;
50
+ }
51
+ /**
52
+ * 三次方缓出
53
+ * @param t 时间参数 (0-1)
54
+ * @returns 缓动值
55
+ */
56
+ static cubicOut(t) {
57
+ return 1 - Math.pow(1 - t, 3);
58
+ }
59
+ /**
60
+ * 三次方缓入缓出
61
+ * @param t 时间参数 (0-1)
62
+ * @returns 缓动值
63
+ */
64
+ static cubicInOut(t) {
65
+ return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
66
+ }
67
+ // 四次方缓动 (Quartic)
68
+ /**
69
+ * 四次方缓入
70
+ * @param t 时间参数 (0-1)
71
+ * @returns 缓动值
72
+ */
73
+ static quartIn(t) {
74
+ return t * t * t * t;
75
+ }
76
+ /**
77
+ * 四次方缓出
78
+ * @param t 时间参数 (0-1)
79
+ * @returns 缓动值
80
+ */
81
+ static quartOut(t) {
82
+ return 1 - Math.pow(1 - t, 4);
83
+ }
84
+ /**
85
+ * 四次方缓入缓出
86
+ * @param t 时间参数 (0-1)
87
+ * @returns 缓动值
88
+ */
89
+ static quartInOut(t) {
90
+ return t < 0.5 ? 8 * t * t * t * t : 1 - Math.pow(-2 * t + 2, 4) / 2;
91
+ }
92
+ // 五次方缓动 (Quintic)
93
+ /**
94
+ * 五次方缓入
95
+ * @param t 时间参数 (0-1)
96
+ * @returns 缓动值
97
+ */
98
+ static quintIn(t) {
99
+ return t * t * t * t * t;
100
+ }
101
+ /**
102
+ * 五次方缓出
103
+ * @param t 时间参数 (0-1)
104
+ * @returns 缓动值
105
+ */
106
+ static quintOut(t) {
107
+ return 1 - Math.pow(1 - t, 5);
108
+ }
109
+ /**
110
+ * 五次方缓入缓出
111
+ * @param t 时间参数 (0-1)
112
+ * @returns 缓动值
113
+ */
114
+ static quintInOut(t) {
115
+ return t < 0.5 ? 16 * t * t * t * t * t : 1 - Math.pow(-2 * t + 2, 5) / 2;
116
+ }
117
+ // 正弦缓动 (Sine)
118
+ /**
119
+ * 正弦缓入
120
+ * @param t 时间参数 (0-1)
121
+ * @returns 缓动值
122
+ */
123
+ static sineIn(t) {
124
+ return 1 - Math.cos((t * Math.PI) / 2);
125
+ }
126
+ /**
127
+ * 正弦缓出
128
+ * @param t 时间参数 (0-1)
129
+ * @returns 缓动值
130
+ */
131
+ static sineOut(t) {
132
+ return Math.sin((t * Math.PI) / 2);
133
+ }
134
+ /**
135
+ * 正弦缓入缓出
136
+ * @param t 时间参数 (0-1)
137
+ * @returns 缓动值
138
+ */
139
+ static sineInOut(t) {
140
+ return -(Math.cos(Math.PI * t) - 1) / 2;
141
+ }
142
+ // 指数缓动 (Exponential)
143
+ /**
144
+ * 指数缓入
145
+ * @param t 时间参数 (0-1)
146
+ * @returns 缓动值
147
+ */
148
+ static expoIn(t) {
149
+ return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));
150
+ }
151
+ /**
152
+ * 指数缓出
153
+ * @param t 时间参数 (0-1)
154
+ * @returns 缓动值
155
+ */
156
+ static expoOut(t) {
157
+ return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
158
+ }
159
+ /**
160
+ * 指数缓入缓出
161
+ * @param t 时间参数 (0-1)
162
+ * @returns 缓动值
163
+ */
164
+ static expoInOut(t) {
165
+ if (t === 0)
166
+ return 0;
167
+ if (t === 1)
168
+ return 1;
169
+ return t < 0.5
170
+ ? Math.pow(2, 20 * t - 10) / 2
171
+ : (2 - Math.pow(2, -20 * t + 10)) / 2;
172
+ }
173
+ // 圆形缓动 (Circular)
174
+ /**
175
+ * 圆形缓入
176
+ * @param t 时间参数 (0-1)
177
+ * @returns 缓动值
178
+ */
179
+ static circIn(t) {
180
+ return 1 - Math.sqrt(1 - t * t);
181
+ }
182
+ /**
183
+ * 圆形缓出
184
+ * @param t 时间参数 (0-1)
185
+ * @returns 缓动值
186
+ */
187
+ static circOut(t) {
188
+ return Math.sqrt(1 - (t - 1) * (t - 1));
189
+ }
190
+ /**
191
+ * 圆形缓入缓出
192
+ * @param t 时间参数 (0-1)
193
+ * @returns 缓动值
194
+ */
195
+ static circInOut(t) {
196
+ return t < 0.5
197
+ ? (1 - Math.sqrt(1 - 4 * t * t)) / 2
198
+ : (Math.sqrt(1 - (-2 * t + 2) * (-2 * t + 2)) + 1) / 2;
199
+ }
200
+ // 回弹缓动 (Back)
201
+ /**
202
+ * 回弹缓入
203
+ * @param t 时间参数 (0-1)
204
+ * @param s 回弹强度,默认1.70158
205
+ * @returns 缓动值
206
+ */
207
+ static backIn(t, s = 1.70158) {
208
+ const c1 = s;
209
+ const c3 = c1 + 1;
210
+ return c3 * t * t * t - c1 * t * t;
211
+ }
212
+ /**
213
+ * 回弹缓出
214
+ * @param t 时间参数 (0-1)
215
+ * @param s 回弹强度,默认1.70158
216
+ * @returns 缓动值
217
+ */
218
+ static backOut(t, s = 1.70158) {
219
+ const c1 = s;
220
+ const c3 = c1 + 1;
221
+ return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);
222
+ }
223
+ /**
224
+ * 回弹缓入缓出
225
+ * @param t 时间参数 (0-1)
226
+ * @param s 回弹强度,默认1.70158
227
+ * @returns 缓动值
228
+ */
229
+ static backInOut(t, s = 1.70158) {
230
+ const c1 = s;
231
+ const c2 = c1 * 1.525;
232
+ return t < 0.5
233
+ ? (Math.pow(2 * t, 2) * ((c2 + 1) * 2 * t - c2)) / 2
234
+ : (Math.pow(2 * t - 2, 2) * ((c2 + 1) * (t * 2 - 2) + c2) + 2) / 2;
235
+ }
236
+ // 弹性缓动 (Elastic)
237
+ /**
238
+ * 弹性缓入
239
+ * @param t 时间参数 (0-1)
240
+ * @param amplitude 振幅,默认1
241
+ * @param period 周期,默认0.3
242
+ * @returns 缓动值
243
+ */
244
+ static elasticIn(t, amplitude = 1, period = 0.3) {
245
+ if (t === 0)
246
+ return 0;
247
+ if (t === 1)
248
+ return 1;
249
+ const s = period / 4;
250
+ return -(amplitude * Math.pow(2, 10 * (t - 1)) * Math.sin((t - 1 - s) * (2 * Math.PI) / period));
251
+ }
252
+ /**
253
+ * 弹性缓出
254
+ * @param t 时间参数 (0-1)
255
+ * @param amplitude 振幅,默认1
256
+ * @param period 周期,默认0.3
257
+ * @returns 缓动值
258
+ */
259
+ static elasticOut(t, amplitude = 1, period = 0.3) {
260
+ if (t === 0)
261
+ return 0;
262
+ if (t === 1)
263
+ return 1;
264
+ const s = period / 4;
265
+ return amplitude * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / period) + 1;
266
+ }
267
+ /**
268
+ * 弹性缓入缓出
269
+ * @param t 时间参数 (0-1)
270
+ * @param amplitude 振幅,默认1
271
+ * @param period 周期,默认0.45
272
+ * @returns 缓动值
273
+ */
274
+ static elasticInOut(t, amplitude = 1, period = 0.45) {
275
+ if (t === 0)
276
+ return 0;
277
+ if (t === 1)
278
+ return 1;
279
+ const s = period / 4;
280
+ if (t < 0.5) {
281
+ return -0.5 * (amplitude * Math.pow(2, 10 * (2 * t - 1)) * Math.sin((2 * t - 1 - s) * (2 * Math.PI) / period));
282
+ }
283
+ return amplitude * Math.pow(2, -10 * (2 * t - 1)) * Math.sin((2 * t - 1 - s) * (2 * Math.PI) / period) * 0.5 + 1;
284
+ }
285
+ // 跳跃缓动 (Bounce)
286
+ /**
287
+ * 跳跃缓入
288
+ * @param t 时间参数 (0-1)
289
+ * @returns 缓动值
290
+ */
291
+ static bounceIn(t) {
292
+ return 1 - Easing.bounceOut(1 - t);
293
+ }
294
+ /**
295
+ * 跳跃缓出
296
+ * @param t 时间参数 (0-1)
297
+ * @returns 缓动值
298
+ */
299
+ static bounceOut(t) {
300
+ const n1 = 7.5625;
301
+ const d1 = 2.75;
302
+ if (t < 1 / d1) {
303
+ return n1 * t * t;
304
+ }
305
+ else if (t < 2 / d1) {
306
+ return n1 * (t -= 1.5 / d1) * t + 0.75;
307
+ }
308
+ else if (t < 2.5 / d1) {
309
+ return n1 * (t -= 2.25 / d1) * t + 0.9375;
310
+ }
311
+ else {
312
+ return n1 * (t -= 2.625 / d1) * t + 0.984375;
313
+ }
314
+ }
315
+ /**
316
+ * 跳跃缓入缓出
317
+ * @param t 时间参数 (0-1)
318
+ * @returns 缓动值
319
+ */
320
+ static bounceInOut(t) {
321
+ return t < 0.5
322
+ ? (1 - Easing.bounceOut(1 - 2 * t)) / 2
323
+ : (1 + Easing.bounceOut(2 * t - 1)) / 2;
324
+ }
325
+ // 组合缓动
326
+ /**
327
+ * 创建自定义缓动函数(组合多个缓动)
328
+ * @param easingFunctions 缓动函数数组
329
+ * @param weights 权重数组,默认均等
330
+ * @returns 组合后的缓动函数
331
+ */
332
+ static combine(easingFunctions, weights) {
333
+ if (!weights) {
334
+ weights = new Array(easingFunctions.length).fill(1 / easingFunctions.length);
335
+ }
336
+ return (t) => {
337
+ let result = 0;
338
+ for (let i = 0; i < easingFunctions.length; i++) {
339
+ result += easingFunctions[i](t) * (weights[i] || 0);
340
+ }
341
+ return result;
342
+ };
343
+ }
344
+ /**
345
+ * 创建分段缓动函数
346
+ * @param segments 分段配置数组,每段包含 {duration, easing}
347
+ * @returns 分段缓动函数
348
+ */
349
+ static piecewise(segments) {
350
+ // 计算总持续时间
351
+ const totalDuration = segments.reduce((sum, seg) => sum + seg.duration, 0);
352
+ // 归一化持续时间
353
+ const normalizedSegments = segments.map((seg) => ({
354
+ ...seg,
355
+ duration: seg.duration / totalDuration
356
+ }));
357
+ return (t) => {
358
+ let accumulatedTime = 0;
359
+ for (const segment of normalizedSegments) {
360
+ if (t <= accumulatedTime + segment.duration) {
361
+ const localT = (t - accumulatedTime) / segment.duration;
362
+ return segment.easing(Math.max(0, Math.min(1, localT)));
363
+ }
364
+ accumulatedTime += segment.duration;
365
+ }
366
+ // 如果超出范围,返回最后一段的结束值
367
+ return normalizedSegments[normalizedSegments.length - 1].easing(1);
368
+ };
369
+ }
370
+ /**
371
+ * 创建反向缓动函数
372
+ * @param easing 原缓动函数
373
+ * @returns 反向缓动函数
374
+ */
375
+ static reverse(easing) {
376
+ return (t) => 1 - easing(1 - t);
377
+ }
378
+ /**
379
+ * 创建镜像缓动函数(先正向再反向)
380
+ * @param easing 原缓动函数
381
+ * @returns 镜像缓动函数
382
+ */
383
+ static mirror(easing) {
384
+ return (t) => {
385
+ if (t < 0.5) {
386
+ return easing(t * 2);
387
+ }
388
+ else {
389
+ return easing(2 - t * 2);
390
+ }
391
+ };
392
+ }
393
+ }
394
+ // 常用预设
395
+ /** 平滑进入(常用于UI动画) */
396
+ Easing.smoothIn = Easing.quadOut;
397
+ /** 平滑退出(常用于UI动画) */
398
+ Easing.smoothOut = Easing.quadIn;
399
+ /** 快速进入(常用于出现动画) */
400
+ Easing.quickIn = Easing.cubicOut;
401
+ /** 快速退出(常用于消失动画) */
402
+ Easing.quickOut = Easing.cubicIn;
403
+ /** 自然运动(模拟物理) */
404
+ Easing.natural = Easing.quartOut;
405
+ /** 强调效果(吸引注意力) */
406
+ Easing.emphasize = Easing.backOut;
407
+ //# sourceMappingURL=Easing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Easing.js","sourceRoot":"","sources":["../../src/Animation/Easing.ts"],"names":[],"mappings":"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"}