@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/Matrix3.js CHANGED
@@ -1,18 +1,21 @@
1
1
  import { Vector2 } from './Vector2';
2
2
  /**
3
3
  * 3x3变换矩阵类
4
+ * 3x3 Transform Matrix Class
4
5
  *
5
6
  * 用于2D变换(平移、旋转、缩放)的3x3矩阵
6
- * 矩阵布局:
7
- * [m00, m01, m02] [scaleX * cos, -scaleY * sin, translateX]
8
- * [m10, m11, m12] = [scaleX * sin, scaleY * cos, translateY]
9
- * [m20, m21, m22] [0, 0, 1]
7
+ * 使用左手坐标系(顺时针正旋转)
8
+ *
9
+ * 矩阵布局(顺时针旋转):
10
+ * [m00, m01, m02] [scaleX * cos, scaleY * sin, translateX]
11
+ * [m10, m11, m12] = [-scaleX * sin, scaleY * cos, translateY]
12
+ * [m20, m21, m22] [0, 0, 1]
10
13
  */
11
14
  export class Matrix3 {
12
15
  /**
13
- * 创建3x3矩阵
14
- * @param elements 矩阵元素数组(可选),默认为单位矩阵
15
- */
16
+ * 创建3x3矩阵
17
+ * @param elements 矩阵元素数组(可选),默认为单位矩阵
18
+ */
16
19
  constructor(elements) {
17
20
  this.elements = new Float32Array(9);
18
21
  if (elements) {
@@ -53,9 +56,9 @@ export class Matrix3 {
53
56
  set m22(value) { this.elements[8] = value; }
54
57
  // 基础操作
55
58
  /**
56
- * 设置矩阵为单位矩阵
57
- * @returns 当前矩阵实例(链式调用)
58
- */
59
+ * 设置矩阵为单位矩阵
60
+ * @returns 当前矩阵实例(链式调用)
61
+ */
59
62
  identity() {
60
63
  this.elements.set([
61
64
  1, 0, 0,
@@ -65,44 +68,44 @@ export class Matrix3 {
65
68
  return this;
66
69
  }
67
70
  /**
68
- * 设置矩阵为零矩阵
69
- * @returns 当前矩阵实例(链式调用)
70
- */
71
+ * 设置矩阵为零矩阵
72
+ * @returns 当前矩阵实例(链式调用)
73
+ */
71
74
  zero() {
72
75
  this.elements.fill(0);
73
76
  return this;
74
77
  }
75
78
  /**
76
- * 复制另一个矩阵的值
77
- * @param other 源矩阵
78
- * @returns 当前矩阵实例(链式调用)
79
- */
79
+ * 复制另一个矩阵的值
80
+ * @param other 源矩阵
81
+ * @returns 当前矩阵实例(链式调用)
82
+ */
80
83
  copy(other) {
81
84
  this.elements.set(other.elements);
82
85
  return this;
83
86
  }
84
87
  /**
85
- * 克隆当前矩阵
86
- * @returns 新的矩阵实例
87
- */
88
+ * 克隆当前矩阵
89
+ * @returns 新的矩阵实例
90
+ */
88
91
  clone() {
89
92
  return new Matrix3(this.elements);
90
93
  }
91
94
  /**
92
- * 从数组设置矩阵元素
93
- * @param elements 矩阵元素数组
94
- * @returns 当前矩阵实例(链式调用)
95
- */
95
+ * 从数组设置矩阵元素
96
+ * @param elements 矩阵元素数组
97
+ * @returns 当前矩阵实例(链式调用)
98
+ */
96
99
  fromArray(elements) {
97
100
  this.elements.set(elements);
98
101
  return this;
99
102
  }
100
103
  // 矩阵运算
101
104
  /**
102
- * 矩阵加法
103
- * @param other 另一个矩阵
104
- * @returns 当前矩阵实例(链式调用)
105
- */
105
+ * 矩阵加法
106
+ * @param other 另一个矩阵
107
+ * @returns 当前矩阵实例(链式调用)
108
+ */
106
109
  add(other) {
107
110
  for (let i = 0; i < 9; i++) {
108
111
  this.elements[i] += other.elements[i];
@@ -110,10 +113,10 @@ export class Matrix3 {
110
113
  return this;
111
114
  }
112
115
  /**
113
- * 矩阵减法
114
- * @param other 另一个矩阵
115
- * @returns 当前矩阵实例(链式调用)
116
- */
116
+ * 矩阵减法
117
+ * @param other 另一个矩阵
118
+ * @returns 当前矩阵实例(链式调用)
119
+ */
117
120
  subtract(other) {
118
121
  for (let i = 0; i < 9; i++) {
119
122
  this.elements[i] -= other.elements[i];
@@ -121,10 +124,10 @@ export class Matrix3 {
121
124
  return this;
122
125
  }
123
126
  /**
124
- * 矩阵标量乘法
125
- * @param scalar 标量
126
- * @returns 当前矩阵实例(链式调用)
127
- */
127
+ * 矩阵标量乘法
128
+ * @param scalar 标量
129
+ * @returns 当前矩阵实例(链式调用)
130
+ */
128
131
  multiplyScalar(scalar) {
129
132
  for (let i = 0; i < 9; i++) {
130
133
  this.elements[i] *= scalar;
@@ -132,10 +135,10 @@ export class Matrix3 {
132
135
  return this;
133
136
  }
134
137
  /**
135
- * 矩阵乘法
136
- * @param other 另一个矩阵
137
- * @returns 当前矩阵实例(链式调用)
138
- */
138
+ * 矩阵乘法
139
+ * @param other 另一个矩阵
140
+ * @returns 当前矩阵实例(链式调用)
141
+ */
139
142
  multiply(other) {
140
143
  const a = this.elements;
141
144
  const b = other.elements;
@@ -153,10 +156,10 @@ export class Matrix3 {
153
156
  return this;
154
157
  }
155
158
  /**
156
- * 左乘另一个矩阵(other * this)
157
- * @param other 左乘矩阵
158
- * @returns 当前矩阵实例(链式调用)
159
- */
159
+ * 左乘另一个矩阵(other * this)
160
+ * @param other 左乘矩阵
161
+ * @returns 当前矩阵实例(链式调用)
162
+ */
160
163
  premultiply(other) {
161
164
  const a = other.elements;
162
165
  const b = this.elements;
@@ -175,11 +178,11 @@ export class Matrix3 {
175
178
  }
176
179
  // 变换操作
177
180
  /**
178
- * 设置为平移矩阵
179
- * @param x X方向平移
180
- * @param y Y方向平移
181
- * @returns 当前矩阵实例(链式调用)
182
- */
181
+ * 设置为平移矩阵
182
+ * @param x X方向平移
183
+ * @param y Y方向平移
184
+ * @returns 当前矩阵实例(链式调用)
185
+ */
183
186
  makeTranslation(x, y) {
184
187
  this.elements.set([
185
188
  1, 0, x,
@@ -189,26 +192,33 @@ export class Matrix3 {
189
192
  return this;
190
193
  }
191
194
  /**
192
- * 设置为旋转矩阵
195
+ * 设置为旋转矩阵(顺时针为正)
196
+ * Set as rotation matrix (clockwise positive)
197
+ *
198
+ * 使用左手坐标系约定:正角度 = 顺时针旋转
199
+ * Uses left-hand coordinate system: positive angle = clockwise
200
+ *
193
201
  * @param angle 旋转角度(弧度)
194
202
  * @returns 当前矩阵实例(链式调用)
195
203
  */
196
204
  makeRotation(angle) {
197
205
  const cos = Math.cos(angle);
198
206
  const sin = Math.sin(angle);
207
+ // Clockwise rotation matrix
208
+ // 顺时针旋转矩阵
199
209
  this.elements.set([
200
- cos, -sin, 0,
201
- sin, cos, 0,
210
+ cos, sin, 0,
211
+ -sin, cos, 0,
202
212
  0, 0, 1
203
213
  ]);
204
214
  return this;
205
215
  }
206
216
  /**
207
- * 设置为缩放矩阵
208
- * @param scaleX X方向缩放
209
- * @param scaleY Y方向缩放
210
- * @returns 当前矩阵实例(链式调用)
211
- */
217
+ * 设置为缩放矩阵
218
+ * @param scaleX X方向缩放
219
+ * @param scaleY Y方向缩放
220
+ * @returns 当前矩阵实例(链式调用)
221
+ */
212
222
  makeScale(scaleX, scaleY) {
213
223
  this.elements.set([
214
224
  scaleX, 0, 0,
@@ -218,28 +228,35 @@ export class Matrix3 {
218
228
  return this;
219
229
  }
220
230
  /**
221
- * 复合平移
222
- * @param x X方向平移
223
- * @param y Y方向平移
224
- * @returns 当前矩阵实例(链式调用)
225
- */
231
+ * 复合平移
232
+ * @param x X方向平移
233
+ * @param y Y方向平移
234
+ * @returns 当前矩阵实例(链式调用)
235
+ */
226
236
  translate(x, y) {
227
237
  this.m02 += this.m00 * x + this.m01 * y;
228
238
  this.m12 += this.m10 * x + this.m11 * y;
229
239
  return this;
230
240
  }
231
241
  /**
232
- * 复合旋转
242
+ * 复合旋转(顺时针为正)
243
+ * Composite rotation (clockwise positive)
244
+ *
245
+ * 使用左手坐标系约定:正角度 = 顺时针旋转
246
+ * Uses left-hand coordinate system: positive angle = clockwise
247
+ *
233
248
  * @param angle 旋转角度(弧度)
234
249
  * @returns 当前矩阵实例(链式调用)
235
250
  */
236
251
  rotate(angle) {
237
252
  const cos = Math.cos(angle);
238
253
  const sin = Math.sin(angle);
239
- const m00 = this.m00 * cos + this.m01 * sin;
240
- const m01 = this.m00 * -sin + this.m01 * cos;
241
- const m10 = this.m10 * cos + this.m11 * sin;
242
- const m11 = this.m10 * -sin + this.m11 * cos;
254
+ // Clockwise rotation: multiply by [cos, sin; -sin, cos]
255
+ // 顺时针旋转
256
+ const m00 = this.m00 * cos - this.m01 * sin;
257
+ const m01 = this.m00 * sin + this.m01 * cos;
258
+ const m10 = this.m10 * cos - this.m11 * sin;
259
+ const m11 = this.m10 * sin + this.m11 * cos;
243
260
  this.m00 = m00;
244
261
  this.m01 = m01;
245
262
  this.m10 = m10;
@@ -247,11 +264,11 @@ export class Matrix3 {
247
264
  return this;
248
265
  }
249
266
  /**
250
- * 复合缩放
251
- * @param scaleX X方向缩放
252
- * @param scaleY Y方向缩放
253
- * @returns 当前矩阵实例(链式调用)
254
- */
267
+ * 复合缩放
268
+ * @param scaleX X方向缩放
269
+ * @param scaleY Y方向缩放
270
+ * @returns 当前矩阵实例(链式调用)
271
+ */
255
272
  scale(scaleX, scaleY) {
256
273
  this.m00 *= scaleX;
257
274
  this.m01 *= scaleY;
@@ -261,9 +278,9 @@ export class Matrix3 {
261
278
  }
262
279
  // 矩阵变换
263
280
  /**
264
- * 矩阵转置
265
- * @returns 当前矩阵实例(链式调用)
266
- */
281
+ * 矩阵转置
282
+ * @returns 当前矩阵实例(链式调用)
283
+ */
267
284
  transpose() {
268
285
  const elements = this.elements;
269
286
  let tmp;
@@ -279,9 +296,9 @@ export class Matrix3 {
279
296
  return this;
280
297
  }
281
298
  /**
282
- * 计算矩阵行列式
283
- * @returns 行列式值
284
- */
299
+ * 计算矩阵行列式
300
+ * @returns 行列式值
301
+ */
285
302
  determinant() {
286
303
  const e = this.elements;
287
304
  return e[0] * (e[4] * e[8] - e[5] * e[7]) -
@@ -289,9 +306,9 @@ export class Matrix3 {
289
306
  e[2] * (e[3] * e[7] - e[4] * e[6]);
290
307
  }
291
308
  /**
292
- * 矩阵求逆
293
- * @returns 当前矩阵实例(链式调用),如果矩阵不可逆则保持不变
294
- */
309
+ * 矩阵求逆
310
+ * @returns 当前矩阵实例(链式调用),如果矩阵不可逆则保持不变
311
+ */
295
312
  invert() {
296
313
  const e = this.elements;
297
314
  const det = this.determinant();
@@ -315,10 +332,10 @@ export class Matrix3 {
315
332
  }
316
333
  // 向量变换
317
334
  /**
318
- * 变换向量(应用完整的3x3变换)
319
- * @param vector 向量
320
- * @returns 新的变换后的向量
321
- */
335
+ * 变换向量(应用完整的3x3变换)
336
+ * @param vector 向量
337
+ * @returns 新的变换后的向量
338
+ */
322
339
  transformVector(vector) {
323
340
  const x = vector.x;
324
341
  const y = vector.y;
@@ -326,40 +343,44 @@ export class Matrix3 {
326
343
  return new Vector2((this.m00 * x + this.m01 * y + this.m02) / w, (this.m10 * x + this.m11 * y + this.m12) / w);
327
344
  }
328
345
  /**
329
- * 变换向量(仅应用旋转和缩放,忽略平移)
330
- * @param vector 向量
331
- * @returns 新的变换后的向量
332
- */
346
+ * 变换向量(仅应用旋转和缩放,忽略平移)
347
+ * @param vector 向量
348
+ * @returns 新的变换后的向量
349
+ */
333
350
  transformDirection(vector) {
334
351
  return new Vector2(this.m00 * vector.x + this.m01 * vector.y, this.m10 * vector.x + this.m11 * vector.y);
335
352
  }
336
353
  /**
337
- * 批量变换向量数组
338
- * @param vectors 向量数组
339
- * @returns 变换后的向量数组
340
- */
354
+ * 批量变换向量数组
355
+ * @param vectors 向量数组
356
+ * @returns 变换后的向量数组
357
+ */
341
358
  transformVectors(vectors) {
342
- return vectors.map(v => this.transformVector(v));
359
+ return vectors.map((v) => this.transformVector(v));
343
360
  }
344
361
  // 属性提取
345
362
  /**
346
- * 获取平移分量
347
- * @returns 平移向量
348
- */
363
+ * 获取平移分量
364
+ * @returns 平移向量
365
+ */
349
366
  getTranslation() {
350
367
  return new Vector2(this.m02, this.m12);
351
368
  }
352
369
  /**
353
- * 获取旋转角度
370
+ * 获取旋转角度(顺时针为正)
371
+ * Get rotation angle (clockwise positive)
354
372
  * @returns 旋转角度(弧度)
355
373
  */
356
374
  getRotation() {
357
- return Math.atan2(this.m10, this.m00);
375
+ // For clockwise rotation matrix [cos, sin; -sin, cos]
376
+ // m00 = cos, m01 = sin, so atan2(m01, m00) = θ
377
+ // 顺时针旋转矩阵:从 m01 和 m00 提取角度
378
+ return Math.atan2(this.m01, this.m00);
358
379
  }
359
380
  /**
360
- * 获取缩放分量
361
- * @returns 缩放向量
362
- */
381
+ * 获取缩放分量
382
+ * @returns 缩放向量
383
+ */
363
384
  getScale() {
364
385
  const scaleX = Math.sqrt(this.m00 * this.m00 + this.m10 * this.m10);
365
386
  const scaleY = Math.sqrt(this.m01 * this.m01 + this.m11 * this.m11);
@@ -371,9 +392,9 @@ export class Matrix3 {
371
392
  return new Vector2(scaleX, scaleY);
372
393
  }
373
394
  /**
374
- * 分解变换矩阵为平移、旋转、缩放分量
375
- * @returns {translation, rotation, scale}
376
- */
395
+ * 分解变换矩阵为平移、旋转、缩放分量
396
+ * @returns {translation, rotation, scale}
397
+ */
377
398
  decompose() {
378
399
  return {
379
400
  translation: this.getTranslation(),
@@ -383,11 +404,11 @@ export class Matrix3 {
383
404
  }
384
405
  // 比较操作
385
406
  /**
386
- * 检查两个矩阵是否相等
387
- * @param other 另一个矩阵
388
- * @param epsilon 容差,默认为Number.EPSILON
389
- * @returns 是否相等
390
- */
407
+ * 检查两个矩阵是否相等
408
+ * @param other 另一个矩阵
409
+ * @param epsilon 容差,默认为Number.EPSILON
410
+ * @returns 是否相等
411
+ */
391
412
  equals(other, epsilon = Number.EPSILON) {
392
413
  for (let i = 0; i < 9; i++) {
393
414
  if (Math.abs(this.elements[i] - other.elements[i]) >= epsilon) {
@@ -397,10 +418,10 @@ export class Matrix3 {
397
418
  return true;
398
419
  }
399
420
  /**
400
- * 检查两个矩阵是否完全相等
401
- * @param other 另一个矩阵
402
- * @returns 是否完全相等
403
- */
421
+ * 检查两个矩阵是否完全相等
422
+ * @param other 另一个矩阵
423
+ * @returns 是否完全相等
424
+ */
404
425
  exactEquals(other) {
405
426
  for (let i = 0; i < 9; i++) {
406
427
  if (this.elements[i] !== other.elements[i]) {
@@ -410,51 +431,56 @@ export class Matrix3 {
410
431
  return true;
411
432
  }
412
433
  /**
413
- * 检查是否为单位矩阵
414
- * @param epsilon 容差,默认为Number.EPSILON
415
- * @returns 是否为单位矩阵
416
- */
434
+ * 检查是否为单位矩阵
435
+ * @param epsilon 容差,默认为Number.EPSILON
436
+ * @returns 是否为单位矩阵
437
+ */
417
438
  isIdentity(epsilon = Number.EPSILON) {
418
439
  return this.equals(Matrix3.IDENTITY, epsilon);
419
440
  }
420
441
  // 静态方法
421
442
  /**
422
- * 矩阵乘法(静态方法)
423
- * @param a 矩阵a
424
- * @param b 矩阵b
425
- * @returns 新的结果矩阵
426
- */
443
+ * 矩阵乘法(静态方法)
444
+ * @param a 矩阵a
445
+ * @param b 矩阵b
446
+ * @returns 新的结果矩阵
447
+ */
427
448
  static multiply(a, b) {
428
449
  return a.clone().multiply(b);
429
450
  }
430
451
  /**
431
- * 创建平移矩阵(静态方法)
432
- * @param x X方向平移
433
- * @param y Y方向平移
434
- * @returns 新的平移矩阵
435
- */
452
+ * 创建平移矩阵(静态方法)
453
+ * @param x X方向平移
454
+ * @param y Y方向平移
455
+ * @returns 新的平移矩阵
456
+ */
436
457
  static translation(x, y) {
437
458
  return new Matrix3().makeTranslation(x, y);
438
459
  }
439
460
  /**
440
- * 创建旋转矩阵(静态方法)
441
- * @param angle 旋转角度(弧度)
442
- * @returns 新的旋转矩阵
443
- */
461
+ * 创建旋转矩阵(静态方法)
462
+ * @param angle 旋转角度(弧度)
463
+ * @returns 新的旋转矩阵
464
+ */
444
465
  static rotation(angle) {
445
466
  return new Matrix3().makeRotation(angle);
446
467
  }
447
468
  /**
448
- * 创建缩放矩阵(静态方法)
449
- * @param scaleX X方向缩放
450
- * @param scaleY Y方向缩放
451
- * @returns 新的缩放矩阵
452
- */
469
+ * 创建缩放矩阵(静态方法)
470
+ * @param scaleX X方向缩放
471
+ * @param scaleY Y方向缩放
472
+ * @returns 新的缩放矩阵
473
+ */
453
474
  static scale(scaleX, scaleY) {
454
475
  return new Matrix3().makeScale(scaleX, scaleY);
455
476
  }
456
477
  /**
457
- * 创建TRS(平移-旋转-缩放)变换矩阵
478
+ * 创建TRS(平移-旋转-缩放)变换矩阵(顺时针为正)
479
+ * Create TRS (Translate-Rotate-Scale) matrix (clockwise positive)
480
+ *
481
+ * 使用左手坐标系约定:正角度 = 顺时针旋转
482
+ * Uses left-hand coordinate system: positive angle = clockwise
483
+ *
458
484
  * @param translation 平移向量
459
485
  * @param rotation 旋转角度(弧度)
460
486
  * @param scale 缩放向量
@@ -463,36 +489,38 @@ export class Matrix3 {
463
489
  static TRS(translation, rotation, scale) {
464
490
  const cos = Math.cos(rotation);
465
491
  const sin = Math.sin(rotation);
492
+ // Clockwise rotation matrix with scale
493
+ // 带缩放的顺时针旋转矩阵
466
494
  return new Matrix3([
467
- scale.x * cos, -scale.y * sin, translation.x,
468
- scale.x * sin, scale.y * cos, translation.y,
495
+ scale.x * cos, scale.y * sin, translation.x,
496
+ -scale.x * sin, scale.y * cos, translation.y,
469
497
  0, 0, 1
470
498
  ]);
471
499
  }
472
500
  // 字符串转换
473
501
  /**
474
- * 转换为字符串
475
- * @returns 字符串表示
476
- */
502
+ * 转换为字符串
503
+ * @returns 字符串表示
504
+ */
477
505
  toString() {
478
506
  const e = this.elements;
479
- return `Matrix3(\n` +
507
+ return 'Matrix3(\n' +
480
508
  ` ${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}\n` +
481
509
  ` ${e[3].toFixed(3)}, ${e[4].toFixed(3)}, ${e[5].toFixed(3)}\n` +
482
510
  ` ${e[6].toFixed(3)}, ${e[7].toFixed(3)}, ${e[8].toFixed(3)}\n` +
483
- `)`;
511
+ ')';
484
512
  }
485
513
  /**
486
- * 转换为数组
487
- * @returns 矩阵元素数组
488
- */
514
+ * 转换为数组
515
+ * @returns 矩阵元素数组
516
+ */
489
517
  toArray() {
490
518
  return Array.from(this.elements);
491
519
  }
492
520
  /**
493
- * 转换为CSS transform字符串
494
- * @returns CSS transform字符串
495
- */
521
+ * 转换为CSS transform字符串
522
+ * @returns CSS transform字符串
523
+ */
496
524
  toCSSTransform() {
497
525
  const e = this.elements;
498
526
  return `matrix(${e[0]}, ${e[3]}, ${e[1]}, ${e[4]}, ${e[2]}, ${e[5]})`;
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix3.js","sourceRoot":"","sources":["../src/Matrix3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,OAAO,OAAO;IAIlB;;;OAGG;IACH,YAAY,QAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAiBD,QAAQ;IAER,aAAa;IACb,GAAG,CAAC,GAAW,EAAE,GAAW;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,aAAa;IACb,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;IACR,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,KAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEpD,OAAO;IAEP;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChB,CAAC,EAAE,CAAC,EAAE,CAAC;YACP,CAAC,EAAE,CAAC,EAAE,CAAC;YACP,CAAC,EAAE,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAc;QACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,QAA2B;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;IAEP;;;;OAIG;IACH,GAAG,CAAC,KAAc;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAc;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAAc;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAc;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC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"}
1
+ {"version":3,"file":"Matrix3.js","sourceRoot":"","sources":["../src/Matrix3.ts"],"names":[],"mappings":"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C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,G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"}