@esengine/ecs-framework-math 1.0.3 → 2.8.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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/bin/Animation/Easing.d.ts +150 -150
  3. package/bin/Animation/Easing.d.ts.map +1 -1
  4. package/bin/Animation/Easing.js +151 -151
  5. package/bin/Animation/Easing.js.map +1 -1
  6. package/bin/Animation/Interpolation.d.ts +102 -102
  7. package/bin/Animation/Interpolation.d.ts.map +1 -1
  8. package/bin/Animation/Interpolation.js +104 -104
  9. package/bin/Animation/Interpolation.js.map +1 -1
  10. package/bin/Animation/index.d.ts.map +1 -1
  11. package/bin/Animation/index.js.map +1 -1
  12. package/bin/Circle.d.ts +159 -159
  13. package/bin/Circle.d.ts.map +1 -1
  14. package/bin/Circle.js +159 -159
  15. package/bin/Circle.js.map +1 -1
  16. package/bin/Collision/CollisionDetector.d.ts +64 -64
  17. package/bin/Collision/CollisionDetector.d.ts.map +1 -1
  18. package/bin/Collision/CollisionDetector.js +66 -66
  19. package/bin/Collision/CollisionDetector.js.map +1 -1
  20. package/bin/Color.d.ts +277 -0
  21. package/bin/Color.d.ts.map +1 -0
  22. package/bin/Color.js +470 -0
  23. package/bin/Color.js.map +1 -0
  24. package/bin/Fixed32.d.ts +266 -0
  25. package/bin/Fixed32.d.ts.map +1 -0
  26. package/bin/Fixed32.js +381 -0
  27. package/bin/Fixed32.js.map +1 -0
  28. package/bin/FixedMath.d.ts +109 -0
  29. package/bin/FixedMath.d.ts.map +1 -0
  30. package/bin/FixedMath.js +264 -0
  31. package/bin/FixedMath.js.map +1 -0
  32. package/bin/FixedVector2.d.ts +293 -0
  33. package/bin/FixedVector2.d.ts.map +1 -0
  34. package/bin/FixedVector2.js +413 -0
  35. package/bin/FixedVector2.js.map +1 -0
  36. package/bin/MathUtils.d.ts +205 -205
  37. package/bin/MathUtils.d.ts.map +1 -1
  38. package/bin/MathUtils.js +206 -206
  39. package/bin/MathUtils.js.map +1 -1
  40. package/bin/Matrix3.d.ts +158 -139
  41. package/bin/Matrix3.d.ts.map +1 -1
  42. package/bin/Matrix3.js +179 -151
  43. package/bin/Matrix3.js.map +1 -1
  44. package/bin/Rectangle.d.ts +144 -144
  45. package/bin/Rectangle.d.ts.map +1 -1
  46. package/bin/Rectangle.js +144 -144
  47. package/bin/Rectangle.js.map +1 -1
  48. package/bin/Vector2.d.ts +202 -186
  49. package/bin/Vector2.d.ts.map +1 -1
  50. package/bin/Vector2.js +198 -188
  51. package/bin/Vector2.js.map +1 -1
  52. package/bin/Vector3.d.ts +257 -0
  53. package/bin/Vector3.d.ts.map +1 -0
  54. package/bin/Vector3.js +372 -0
  55. package/bin/Vector3.js.map +1 -0
  56. package/bin/index.d.ts +8 -1
  57. package/bin/index.d.ts.map +1 -1
  58. package/bin/index.js +9 -0
  59. package/bin/index.js.map +1 -1
  60. package/package.json +66 -67
package/bin/Circle.js CHANGED
@@ -11,11 +11,11 @@ import { Rectangle } from './Rectangle';
11
11
  */
12
12
  export class Circle {
13
13
  /**
14
- * 创建圆形
15
- * @param x 圆心X坐标,默认为0
16
- * @param y 圆心Y坐标,默认为0
17
- * @param radius 半径,默认为0
18
- */
14
+ * 创建圆形
15
+ * @param x 圆心X坐标,默认为0
16
+ * @param y 圆心Y坐标,默认为0
17
+ * @param radius 半径,默认为0
18
+ */
19
19
  constructor(x = 0, y = 0, radius = 0) {
20
20
  this.x = x;
21
21
  this.y = y;
@@ -57,12 +57,12 @@ export class Circle {
57
57
  }
58
58
  // 基础操作
59
59
  /**
60
- * 设置圆形属性
61
- * @param x 圆心X坐标
62
- * @param y 圆心Y坐标
63
- * @param radius 半径
64
- * @returns 当前圆形实例(链式调用)
65
- */
60
+ * 设置圆形属性
61
+ * @param x 圆心X坐标
62
+ * @param y 圆心Y坐标
63
+ * @param radius 半径
64
+ * @returns 当前圆形实例(链式调用)
65
+ */
66
66
  set(x, y, radius) {
67
67
  this.x = x;
68
68
  this.y = y;
@@ -70,10 +70,10 @@ export class Circle {
70
70
  return this;
71
71
  }
72
72
  /**
73
- * 复制另一个圆形的值
74
- * @param other 源圆形
75
- * @returns 当前圆形实例(链式调用)
76
- */
73
+ * 复制另一个圆形的值
74
+ * @param other 源圆形
75
+ * @returns 当前圆形实例(链式调用)
76
+ */
77
77
  copy(other) {
78
78
  this.x = other.x;
79
79
  this.y = other.y;
@@ -81,129 +81,129 @@ export class Circle {
81
81
  return this;
82
82
  }
83
83
  /**
84
- * 克隆当前圆形
85
- * @returns 新的圆形实例
86
- */
84
+ * 克隆当前圆形
85
+ * @returns 新的圆形实例
86
+ */
87
87
  clone() {
88
88
  return new Circle(this.x, this.y, this.radius);
89
89
  }
90
90
  /**
91
- * 设置圆心位置
92
- * @param x 新的X坐标
93
- * @param y 新的Y坐标
94
- * @returns 当前圆形实例(链式调用)
95
- */
91
+ * 设置圆心位置
92
+ * @param x 新的X坐标
93
+ * @param y 新的Y坐标
94
+ * @returns 当前圆形实例(链式调用)
95
+ */
96
96
  setPosition(x, y) {
97
97
  this.x = x;
98
98
  this.y = y;
99
99
  return this;
100
100
  }
101
101
  /**
102
- * 设置圆心位置(使用向量)
103
- * @param center 新的圆心位置
104
- * @returns 当前圆形实例(链式调用)
105
- */
102
+ * 设置圆心位置(使用向量)
103
+ * @param center 新的圆心位置
104
+ * @returns 当前圆形实例(链式调用)
105
+ */
106
106
  setCenter(center) {
107
107
  this.x = center.x;
108
108
  this.y = center.y;
109
109
  return this;
110
110
  }
111
111
  /**
112
- * 设置半径
113
- * @param radius 新的半径
114
- * @returns 当前圆形实例(链式调用)
115
- */
112
+ * 设置半径
113
+ * @param radius 新的半径
114
+ * @returns 当前圆形实例(链式调用)
115
+ */
116
116
  setRadius(radius) {
117
117
  this.radius = radius;
118
118
  return this;
119
119
  }
120
120
  // 变换操作
121
121
  /**
122
- * 平移圆形
123
- * @param dx X方向偏移
124
- * @param dy Y方向偏移
125
- * @returns 当前圆形实例(链式调用)
126
- */
122
+ * 平移圆形
123
+ * @param dx X方向偏移
124
+ * @param dy Y方向偏移
125
+ * @returns 当前圆形实例(链式调用)
126
+ */
127
127
  translate(dx, dy) {
128
128
  this.x += dx;
129
129
  this.y += dy;
130
130
  return this;
131
131
  }
132
132
  /**
133
- * 平移圆形(使用向量)
134
- * @param offset 偏移向量
135
- * @returns 当前圆形实例(链式调用)
136
- */
133
+ * 平移圆形(使用向量)
134
+ * @param offset 偏移向量
135
+ * @returns 当前圆形实例(链式调用)
136
+ */
137
137
  translateBy(offset) {
138
138
  this.x += offset.x;
139
139
  this.y += offset.y;
140
140
  return this;
141
141
  }
142
142
  /**
143
- * 缩放圆形
144
- * @param scale 缩放因子
145
- * @returns 当前圆形实例(链式调用)
146
- */
143
+ * 缩放圆形
144
+ * @param scale 缩放因子
145
+ * @returns 当前圆形实例(链式调用)
146
+ */
147
147
  scale(scale) {
148
148
  this.radius *= scale;
149
149
  return this;
150
150
  }
151
151
  /**
152
- * 扩展圆形
153
- * @param amount 扩展量(正值扩大半径,负值缩小半径)
154
- * @returns 当前圆形实例(链式调用)
155
- */
152
+ * 扩展圆形
153
+ * @param amount 扩展量(正值扩大半径,负值缩小半径)
154
+ * @returns 当前圆形实例(链式调用)
155
+ */
156
156
  inflate(amount) {
157
157
  this.radius += amount;
158
158
  return this;
159
159
  }
160
160
  // 包含检测
161
161
  /**
162
- * 检查是否包含指定点
163
- * @param point 点
164
- * @returns 是否包含
165
- */
162
+ * 检查是否包含指定点
163
+ * @param point 点
164
+ * @returns 是否包含
165
+ */
166
166
  containsPoint(point) {
167
167
  const dx = point.x - this.x;
168
168
  const dy = point.y - this.y;
169
169
  return dx * dx + dy * dy <= this.radius * this.radius;
170
170
  }
171
171
  /**
172
- * 检查是否包含指定坐标
173
- * @param x X坐标
174
- * @param y Y坐标
175
- * @returns 是否包含
176
- */
172
+ * 检查是否包含指定坐标
173
+ * @param x X坐标
174
+ * @param y Y坐标
175
+ * @returns 是否包含
176
+ */
177
177
  contains(x, y) {
178
178
  const dx = x - this.x;
179
179
  const dy = y - this.y;
180
180
  return dx * dx + dy * dy <= this.radius * this.radius;
181
181
  }
182
182
  /**
183
- * 检查是否完全包含另一个圆形
184
- * @param other 另一个圆形
185
- * @returns 是否完全包含
186
- */
183
+ * 检查是否完全包含另一个圆形
184
+ * @param other 另一个圆形
185
+ * @returns 是否完全包含
186
+ */
187
187
  containsCircle(other) {
188
188
  const distance = this.distanceToCircle(other);
189
189
  return distance + other.radius <= this.radius;
190
190
  }
191
191
  /**
192
- * 检查点是否在圆的边界上
193
- * @param point 点
194
- * @param epsilon 容差,默认为Number.EPSILON
195
- * @returns 是否在边界上
196
- */
192
+ * 检查点是否在圆的边界上
193
+ * @param point 点
194
+ * @param epsilon 容差,默认为Number.EPSILON
195
+ * @returns 是否在边界上
196
+ */
197
197
  pointOnBoundary(point, epsilon = Number.EPSILON) {
198
198
  const distance = this.distanceToPoint(point);
199
199
  return Math.abs(distance - this.radius) < epsilon;
200
200
  }
201
201
  // 相交检测
202
202
  /**
203
- * 检查是否与另一个圆形相交
204
- * @param other 另一个圆形
205
- * @returns 是否相交
206
- */
203
+ * 检查是否与另一个圆形相交
204
+ * @param other 另一个圆形
205
+ * @returns 是否相交
206
+ */
207
207
  intersects(other) {
208
208
  const dx = this.x - other.x;
209
209
  const dy = this.y - other.y;
@@ -212,10 +212,10 @@ export class Circle {
212
212
  return distanceSquared <= radiusSum * radiusSum;
213
213
  }
214
214
  /**
215
- * 检查是否与矩形相交
216
- * @param rect 矩形
217
- * @returns 是否相交
218
- */
215
+ * 检查是否与矩形相交
216
+ * @param rect 矩形
217
+ * @returns 是否相交
218
+ */
219
219
  intersectsRect(rect) {
220
220
  // 找到矩形上离圆心最近的点
221
221
  const closestX = Math.max(rect.x, Math.min(this.x, rect.right));
@@ -226,10 +226,10 @@ export class Circle {
226
226
  return dx * dx + dy * dy <= this.radius * this.radius;
227
227
  }
228
228
  /**
229
- * 计算与另一个圆形的相交面积
230
- * @param other 另一个圆形
231
- * @returns 相交面积
232
- */
229
+ * 计算与另一个圆形的相交面积
230
+ * @param other 另一个圆形
231
+ * @returns 相交面积
232
+ */
233
233
  intersectionArea(other) {
234
234
  const d = this.distanceToCircle(other);
235
235
  // 不相交
@@ -251,54 +251,54 @@ export class Circle {
251
251
  }
252
252
  // 距离计算
253
253
  /**
254
- * 计算圆心到点的距离
255
- * @param point 点
256
- * @returns 距离
257
- */
254
+ * 计算圆心到点的距离
255
+ * @param point 点
256
+ * @returns 距离
257
+ */
258
258
  distanceToPoint(point) {
259
259
  const dx = point.x - this.x;
260
260
  const dy = point.y - this.y;
261
261
  return Math.sqrt(dx * dx + dy * dy);
262
262
  }
263
263
  /**
264
- * 计算圆形边界到点的最短距离
265
- * @param point 点
266
- * @returns 最短距离(点在圆内时为负值)
267
- */
264
+ * 计算圆形边界到点的最短距离
265
+ * @param point 点
266
+ * @returns 最短距离(点在圆内时为负值)
267
+ */
268
268
  distanceToPointFromBoundary(point) {
269
269
  return this.distanceToPoint(point) - this.radius;
270
270
  }
271
271
  /**
272
- * 计算两个圆心之间的距离
273
- * @param other 另一个圆形
274
- * @returns 圆心距离
275
- */
272
+ * 计算两个圆心之间的距离
273
+ * @param other 另一个圆形
274
+ * @returns 圆心距离
275
+ */
276
276
  distanceToCircle(other) {
277
277
  const dx = this.x - other.x;
278
278
  const dy = this.y - other.y;
279
279
  return Math.sqrt(dx * dx + dy * dy);
280
280
  }
281
281
  /**
282
- * 计算两个圆形边界之间的最短距离
283
- * @param other 另一个圆形
284
- * @returns 最短距离(相交时为负值)
285
- */
282
+ * 计算两个圆形边界之间的最短距离
283
+ * @param other 另一个圆形
284
+ * @returns 最短距离(相交时为负值)
285
+ */
286
286
  distanceToCircleFromBoundary(other) {
287
287
  return this.distanceToCircle(other) - this.radius - other.radius;
288
288
  }
289
289
  /**
290
- * 计算圆形到矩形的最短距离
291
- * @param rect 矩形
292
- * @returns 最短距离
293
- */
290
+ * 计算圆形到矩形的最短距离
291
+ * @param rect 矩形
292
+ * @returns 最短距离
293
+ */
294
294
  distanceToRect(rect) {
295
295
  return Math.max(0, rect.distanceToPoint(this.center) - this.radius);
296
296
  }
297
297
  /**
298
- * 获取圆形上距离指定点最近的点
299
- * @param point 指定点
300
- * @returns 最近点
301
- */
298
+ * 获取圆形上距离指定点最近的点
299
+ * @param point 指定点
300
+ * @returns 最近点
301
+ */
302
302
  closestPointTo(point) {
303
303
  const direction = Vector2.subtract(point, this.center);
304
304
  if (direction.isZero) {
@@ -308,10 +308,10 @@ export class Circle {
308
308
  return this.center.clone().add(direction.normalized().multiply(this.radius));
309
309
  }
310
310
  /**
311
- * 获取圆形上距离指定点最远的点
312
- * @param point 指定点
313
- * @returns 最远点
314
- */
311
+ * 获取圆形上距离指定点最远的点
312
+ * @param point 指定点
313
+ * @returns 最远点
314
+ */
315
315
  farthestPointFrom(point) {
316
316
  const direction = Vector2.subtract(point, this.center);
317
317
  if (direction.isZero) {
@@ -322,27 +322,27 @@ export class Circle {
322
322
  }
323
323
  // 几何运算
324
324
  /**
325
- * 获取指定角度上的圆周点
326
- * @param angle 角度(弧度)
327
- * @returns 圆周点
328
- */
325
+ * 获取指定角度上的圆周点
326
+ * @param angle 角度(弧度)
327
+ * @returns 圆周点
328
+ */
329
329
  getPointAtAngle(angle) {
330
330
  return new Vector2(this.x + this.radius * Math.cos(angle), this.y + this.radius * Math.sin(angle));
331
331
  }
332
332
  /**
333
- * 获取点相对于圆心的角度
334
- * @param point 点
335
- * @returns 角度(弧度)
336
- */
333
+ * 获取点相对于圆心的角度
334
+ * @param point 点
335
+ * @returns 角度(弧度)
336
+ */
337
337
  getAngleToPoint(point) {
338
338
  return Math.atan2(point.y - this.y, point.x - this.x);
339
339
  }
340
340
  /**
341
- * 获取圆形与直线的交点
342
- * @param lineStart 直线起点
343
- * @param lineEnd 直线终点
344
- * @returns 交点数组(0-2个点)
345
- */
341
+ * 获取圆形与直线的交点
342
+ * @param lineStart 直线起点
343
+ * @param lineEnd 直线终点
344
+ * @returns 交点数组(0-2个点)
345
+ */
346
346
  getLineIntersections(lineStart, lineEnd) {
347
347
  const dx = lineEnd.x - lineStart.x;
348
348
  const dy = lineEnd.y - lineStart.y;
@@ -371,42 +371,42 @@ export class Circle {
371
371
  }
372
372
  // 比较操作
373
373
  /**
374
- * 检查两个圆形是否相等
375
- * @param other 另一个圆形
376
- * @param epsilon 容差,默认为Number.EPSILON
377
- * @returns 是否相等
378
- */
374
+ * 检查两个圆形是否相等
375
+ * @param other 另一个圆形
376
+ * @param epsilon 容差,默认为Number.EPSILON
377
+ * @returns 是否相等
378
+ */
379
379
  equals(other, epsilon = Number.EPSILON) {
380
380
  return Math.abs(this.x - other.x) < epsilon &&
381
381
  Math.abs(this.y - other.y) < epsilon &&
382
382
  Math.abs(this.radius - other.radius) < epsilon;
383
383
  }
384
384
  /**
385
- * 检查两个圆形是否完全相等
386
- * @param other 另一个圆形
387
- * @returns 是否完全相等
388
- */
385
+ * 检查两个圆形是否完全相等
386
+ * @param other 另一个圆形
387
+ * @returns 是否完全相等
388
+ */
389
389
  exactEquals(other) {
390
390
  return this.x === other.x && this.y === other.y && this.radius === other.radius;
391
391
  }
392
392
  // 静态方法
393
393
  /**
394
- * 从直径创建圆形
395
- * @param x 圆心X坐标
396
- * @param y 圆心Y坐标
397
- * @param diameter 直径
398
- * @returns 新的圆形实例
399
- */
394
+ * 从直径创建圆形
395
+ * @param x 圆心X坐标
396
+ * @param y 圆心Y坐标
397
+ * @param diameter 直径
398
+ * @returns 新的圆形实例
399
+ */
400
400
  static fromDiameter(x, y, diameter) {
401
401
  return new Circle(x, y, diameter * 0.5);
402
402
  }
403
403
  /**
404
- * 从三个点创建外接圆
405
- * @param p1 第一个点
406
- * @param p2 第二个点
407
- * @param p3 第三个点
408
- * @returns 外接圆,如果三点共线返回null
409
- */
404
+ * 从三个点创建外接圆
405
+ * @param p1 第一个点
406
+ * @param p2 第二个点
407
+ * @param p3 第三个点
408
+ * @returns 外接圆,如果三点共线返回null
409
+ */
410
410
  static fromThreePoints(p1, p2, p3) {
411
411
  const ax = p1.x;
412
412
  const ay = p1.y;
@@ -424,10 +424,10 @@ export class Circle {
424
424
  return new Circle(ux, uy, radius);
425
425
  }
426
426
  /**
427
- * 从点数组创建最小包围圆
428
- * @param points 点数组
429
- * @returns 最小包围圆
430
- */
427
+ * 从点数组创建最小包围圆
428
+ * @param points 点数组
429
+ * @returns 最小包围圆
430
+ */
431
431
  static fromPointArray(points) {
432
432
  if (points.length === 0) {
433
433
  return Circle.EMPTY.clone();
@@ -456,34 +456,34 @@ export class Circle {
456
456
  return new Circle(centerX, centerY, maxDistance);
457
457
  }
458
458
  /**
459
- * 线性插值两个圆形
460
- * @param a 起始圆形
461
- * @param b 目标圆形
462
- * @param t 插值参数(0到1)
463
- * @returns 新的插值结果圆形
464
- */
459
+ * 线性插值两个圆形
460
+ * @param a 起始圆形
461
+ * @param b 目标圆形
462
+ * @param t 插值参数(0到1)
463
+ * @returns 新的插值结果圆形
464
+ */
465
465
  static lerp(a, b, t) {
466
466
  return new Circle(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t, a.radius + (b.radius - a.radius) * t);
467
467
  }
468
468
  // 字符串转换
469
469
  /**
470
- * 转换为字符串
471
- * @returns 字符串表示
472
- */
470
+ * 转换为字符串
471
+ * @returns 字符串表示
472
+ */
473
473
  toString() {
474
474
  return `Circle(${this.x.toFixed(2)}, ${this.y.toFixed(2)}, r=${this.radius.toFixed(2)})`;
475
475
  }
476
476
  /**
477
- * 转换为数组
478
- * @returns [x, y, radius] 数组
479
- */
477
+ * 转换为数组
478
+ * @returns [x, y, radius] 数组
479
+ */
480
480
  toArray() {
481
481
  return [this.x, this.y, this.radius];
482
482
  }
483
483
  /**
484
- * 转换为普通对象
485
- * @returns {x, y, radius} 对象
486
- */
484
+ * 转换为普通对象
485
+ * @returns {x, y, radius} 对象
486
+ */
487
487
  toObject() {
488
488
  return { x: this.x, y: this.y, radius: this.radius };
489
489
  }
package/bin/Circle.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"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"}