@esengine/ecs-framework-math 2.10.1 → 2.11.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.
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +10420 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/package.json +20 -11
- package/bin/Animation/Easing.d.ts +0 -244
- package/bin/Animation/Easing.d.ts.map +0 -1
- package/bin/Animation/Easing.js +0 -407
- package/bin/Animation/Easing.js.map +0 -1
- package/bin/Animation/Interpolation.d.ts +0 -172
- package/bin/Animation/Interpolation.d.ts.map +0 -1
- package/bin/Animation/Interpolation.js +0 -327
- package/bin/Animation/Interpolation.js.map +0 -1
- package/bin/Animation/index.d.ts +0 -8
- package/bin/Animation/index.d.ts.map +0 -1
- package/bin/Animation/index.js +0 -8
- package/bin/Animation/index.js.map +0 -1
- package/bin/Circle.d.ts +0 -277
- package/bin/Circle.d.ts.map +0 -1
- package/bin/Circle.js +0 -496
- package/bin/Circle.js.map +0 -1
- package/bin/Collision/CollisionDetector.d.ts +0 -114
- package/bin/Collision/CollisionDetector.d.ts.map +0 -1
- package/bin/Collision/CollisionDetector.js +0 -353
- package/bin/Collision/CollisionDetector.js.map +0 -1
- package/bin/Collision/index.d.ts +0 -7
- package/bin/Collision/index.d.ts.map +0 -1
- package/bin/Collision/index.js +0 -7
- package/bin/Collision/index.js.map +0 -1
- package/bin/Color.d.ts +0 -277
- package/bin/Color.d.ts.map +0 -1
- package/bin/Color.js +0 -470
- package/bin/Color.js.map +0 -1
- package/bin/Fixed32.d.ts +0 -266
- package/bin/Fixed32.d.ts.map +0 -1
- package/bin/Fixed32.js +0 -381
- package/bin/Fixed32.js.map +0 -1
- package/bin/FixedMath.d.ts +0 -109
- package/bin/FixedMath.d.ts.map +0 -1
- package/bin/FixedMath.js +0 -264
- package/bin/FixedMath.js.map +0 -1
- package/bin/FixedVector2.d.ts +0 -293
- package/bin/FixedVector2.d.ts.map +0 -1
- package/bin/FixedVector2.js +0 -413
- package/bin/FixedVector2.js.map +0 -1
- package/bin/MathUtils.d.ts +0 -312
- package/bin/MathUtils.d.ts.map +0 -1
- package/bin/MathUtils.js +0 -500
- package/bin/MathUtils.js.map +0 -1
- package/bin/Matrix3.d.ts +0 -288
- package/bin/Matrix3.d.ts.map +0 -1
- package/bin/Matrix3.js +0 -542
- package/bin/Matrix3.js.map +0 -1
- package/bin/Rectangle.d.ts +0 -266
- package/bin/Rectangle.d.ts.map +0 -1
- package/bin/Rectangle.js +0 -437
- package/bin/Rectangle.js.map +0 -1
- package/bin/Vector2.d.ts +0 -333
- package/bin/Vector2.d.ts.map +0 -1
- package/bin/Vector2.js +0 -484
- package/bin/Vector2.js.map +0 -1
- package/bin/Vector3.d.ts +0 -257
- package/bin/Vector3.d.ts.map +0 -1
- package/bin/Vector3.js +0 -372
- package/bin/Vector3.js.map +0 -1
- package/bin/index.d.ts +0 -25
- package/bin/index.d.ts.map +0 -1
- package/bin/index.js +0 -32
- package/bin/index.js.map +0 -1
- package/bin/nodes/ColorNodes.d.ts +0 -70
- package/bin/nodes/ColorNodes.d.ts.map +0 -1
- package/bin/nodes/ColorNodes.js +0 -427
- package/bin/nodes/ColorNodes.js.map +0 -1
- package/bin/nodes/FixedNodes.d.ts +0 -98
- package/bin/nodes/FixedNodes.d.ts.map +0 -1
- package/bin/nodes/FixedNodes.js +0 -612
- package/bin/nodes/FixedNodes.js.map +0 -1
- package/bin/nodes/FixedVectorNodes.d.ts +0 -58
- package/bin/nodes/FixedVectorNodes.d.ts.map +0 -1
- package/bin/nodes/FixedVectorNodes.js +0 -330
- package/bin/nodes/FixedVectorNodes.js.map +0 -1
- package/bin/nodes/VectorNodes.d.ts +0 -62
- package/bin/nodes/VectorNodes.d.ts.map +0 -1
- package/bin/nodes/VectorNodes.js +0 -355
- package/bin/nodes/VectorNodes.js.map +0 -1
- package/bin/nodes/index.d.ts +0 -20
- package/bin/nodes/index.d.ts.map +0 -1
- package/bin/nodes/index.js +0 -27
- package/bin/nodes/index.js.map +0 -1
package/bin/Fixed32.d.ts
DELETED
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @zh Q16.16 定点数,用于确定性计算(帧同步)
|
|
3
|
-
* @en Q16.16 fixed-point number for deterministic calculations (lockstep)
|
|
4
|
-
*
|
|
5
|
-
* @zh 使用 16 位整数部分 + 16 位小数部分,范围 ±32767.99998
|
|
6
|
-
* @en Uses 16-bit integer + 16-bit fraction, range ±32767.99998
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const a = Fixed32.from(3.14);
|
|
11
|
-
* const b = Fixed32.from(2);
|
|
12
|
-
* const c = a.mul(b); // 6.28
|
|
13
|
-
* console.log(c.toNumber());
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export declare class Fixed32 {
|
|
17
|
-
/**
|
|
18
|
-
* @zh 内部原始值(32位整数)
|
|
19
|
-
* @en Internal raw value (32-bit integer)
|
|
20
|
-
*/
|
|
21
|
-
readonly raw: number;
|
|
22
|
-
/**
|
|
23
|
-
* @zh 小数位数
|
|
24
|
-
* @en Fraction bits
|
|
25
|
-
*/
|
|
26
|
-
static readonly FRACTION_BITS = 16;
|
|
27
|
-
/**
|
|
28
|
-
* @zh 缩放因子 (2^16 = 65536)
|
|
29
|
-
* @en Scale factor (2^16 = 65536)
|
|
30
|
-
*/
|
|
31
|
-
static readonly SCALE = 65536;
|
|
32
|
-
/**
|
|
33
|
-
* @zh 最大值 (约 32767.99998)
|
|
34
|
-
* @en Maximum value (approximately 32767.99998)
|
|
35
|
-
*/
|
|
36
|
-
static readonly MAX_VALUE = 2147483647;
|
|
37
|
-
/**
|
|
38
|
-
* @zh 最小值 (约 -32768)
|
|
39
|
-
* @en Minimum value (approximately -32768)
|
|
40
|
-
*/
|
|
41
|
-
static readonly MIN_VALUE = -2147483648;
|
|
42
|
-
/**
|
|
43
|
-
* @zh 精度 (1/65536 ≈ 0.0000153)
|
|
44
|
-
* @en Precision (1/65536 ≈ 0.0000153)
|
|
45
|
-
*/
|
|
46
|
-
static readonly EPSILON = 1;
|
|
47
|
-
/** @zh 零 @en Zero */
|
|
48
|
-
static readonly ZERO: Fixed32;
|
|
49
|
-
/** @zh 一 @en One */
|
|
50
|
-
static readonly ONE: Fixed32;
|
|
51
|
-
/** @zh 负一 @en Negative one */
|
|
52
|
-
static readonly NEG_ONE: Fixed32;
|
|
53
|
-
/** @zh 二分之一 @en One half */
|
|
54
|
-
static readonly HALF: Fixed32;
|
|
55
|
-
/** @zh 圆周率 π @en Pi */
|
|
56
|
-
static readonly PI: Fixed32;
|
|
57
|
-
/** @zh 2π @en Two Pi */
|
|
58
|
-
static readonly TWO_PI: Fixed32;
|
|
59
|
-
/** @zh π/2 @en Pi divided by 2 */
|
|
60
|
-
static readonly HALF_PI: Fixed32;
|
|
61
|
-
/** @zh 弧度转角度系数 (180/π) @en Radians to degrees factor */
|
|
62
|
-
static readonly RAD_TO_DEG: Fixed32;
|
|
63
|
-
/** @zh 角度转弧度系数 (π/180) @en Degrees to radians factor */
|
|
64
|
-
static readonly DEG_TO_RAD: Fixed32;
|
|
65
|
-
/**
|
|
66
|
-
* @zh 私有构造函数,使用静态方法创建实例
|
|
67
|
-
* @en Private constructor, use static methods to create instances
|
|
68
|
-
*/
|
|
69
|
-
private constructor();
|
|
70
|
-
/**
|
|
71
|
-
* @zh 从浮点数创建定点数
|
|
72
|
-
* @en Create fixed-point from floating-point number
|
|
73
|
-
* @param n - @zh 浮点数值 @en Floating-point value
|
|
74
|
-
*/
|
|
75
|
-
static from(n: number): Fixed32;
|
|
76
|
-
/**
|
|
77
|
-
* @zh 从原始整数值创建定点数
|
|
78
|
-
* @en Create fixed-point from raw integer value
|
|
79
|
-
* @param raw - @zh 原始值 @en Raw value
|
|
80
|
-
*/
|
|
81
|
-
static fromRaw(raw: number): Fixed32;
|
|
82
|
-
/**
|
|
83
|
-
* @zh 从整数创建定点数(无精度损失)
|
|
84
|
-
* @en Create fixed-point from integer (no precision loss)
|
|
85
|
-
* @param n - @zh 整数值 @en Integer value
|
|
86
|
-
*/
|
|
87
|
-
static fromInt(n: number): Fixed32;
|
|
88
|
-
/**
|
|
89
|
-
* @zh 转换为浮点数
|
|
90
|
-
* @en Convert to floating-point number
|
|
91
|
-
*/
|
|
92
|
-
toNumber(): number;
|
|
93
|
-
/**
|
|
94
|
-
* @zh 获取原始整数值
|
|
95
|
-
* @en Get raw integer value
|
|
96
|
-
*/
|
|
97
|
-
toRaw(): number;
|
|
98
|
-
/**
|
|
99
|
-
* @zh 转换为整数(向下取整)
|
|
100
|
-
* @en Convert to integer (floor)
|
|
101
|
-
*/
|
|
102
|
-
toInt(): number;
|
|
103
|
-
/**
|
|
104
|
-
* @zh 转换为字符串
|
|
105
|
-
* @en Convert to string
|
|
106
|
-
*/
|
|
107
|
-
toString(): string;
|
|
108
|
-
/**
|
|
109
|
-
* @zh 加法
|
|
110
|
-
* @en Addition
|
|
111
|
-
*/
|
|
112
|
-
add(other: Fixed32): Fixed32;
|
|
113
|
-
/**
|
|
114
|
-
* @zh 减法
|
|
115
|
-
* @en Subtraction
|
|
116
|
-
*/
|
|
117
|
-
sub(other: Fixed32): Fixed32;
|
|
118
|
-
/**
|
|
119
|
-
* @zh 乘法(使用 64 位中间结果防止溢出)
|
|
120
|
-
* @en Multiplication (uses 64-bit intermediate to prevent overflow)
|
|
121
|
-
*/
|
|
122
|
-
mul(other: Fixed32): Fixed32;
|
|
123
|
-
/**
|
|
124
|
-
* @zh 除法
|
|
125
|
-
* @en Division
|
|
126
|
-
* @throws @zh 除数为零时抛出错误 @en Throws when dividing by zero
|
|
127
|
-
*/
|
|
128
|
-
div(other: Fixed32): Fixed32;
|
|
129
|
-
/**
|
|
130
|
-
* @zh 取模运算
|
|
131
|
-
* @en Modulo operation
|
|
132
|
-
*/
|
|
133
|
-
mod(other: Fixed32): Fixed32;
|
|
134
|
-
/**
|
|
135
|
-
* @zh 取反
|
|
136
|
-
* @en Negation
|
|
137
|
-
*/
|
|
138
|
-
neg(): Fixed32;
|
|
139
|
-
/**
|
|
140
|
-
* @zh 绝对值
|
|
141
|
-
* @en Absolute value
|
|
142
|
-
*/
|
|
143
|
-
abs(): Fixed32;
|
|
144
|
-
/**
|
|
145
|
-
* @zh 等于
|
|
146
|
-
* @en Equal to
|
|
147
|
-
*/
|
|
148
|
-
eq(other: Fixed32): boolean;
|
|
149
|
-
/**
|
|
150
|
-
* @zh 不等于
|
|
151
|
-
* @en Not equal to
|
|
152
|
-
*/
|
|
153
|
-
ne(other: Fixed32): boolean;
|
|
154
|
-
/**
|
|
155
|
-
* @zh 小于
|
|
156
|
-
* @en Less than
|
|
157
|
-
*/
|
|
158
|
-
lt(other: Fixed32): boolean;
|
|
159
|
-
/**
|
|
160
|
-
* @zh 小于等于
|
|
161
|
-
* @en Less than or equal to
|
|
162
|
-
*/
|
|
163
|
-
le(other: Fixed32): boolean;
|
|
164
|
-
/**
|
|
165
|
-
* @zh 大于
|
|
166
|
-
* @en Greater than
|
|
167
|
-
*/
|
|
168
|
-
gt(other: Fixed32): boolean;
|
|
169
|
-
/**
|
|
170
|
-
* @zh 大于等于
|
|
171
|
-
* @en Greater than or equal to
|
|
172
|
-
*/
|
|
173
|
-
ge(other: Fixed32): boolean;
|
|
174
|
-
/**
|
|
175
|
-
* @zh 检查是否为零
|
|
176
|
-
* @en Check if zero
|
|
177
|
-
*/
|
|
178
|
-
isZero(): boolean;
|
|
179
|
-
/**
|
|
180
|
-
* @zh 检查是否为正数
|
|
181
|
-
* @en Check if positive
|
|
182
|
-
*/
|
|
183
|
-
isPositive(): boolean;
|
|
184
|
-
/**
|
|
185
|
-
* @zh 检查是否为负数
|
|
186
|
-
* @en Check if negative
|
|
187
|
-
*/
|
|
188
|
-
isNegative(): boolean;
|
|
189
|
-
/**
|
|
190
|
-
* @zh 平方根(牛顿迭代法,确定性)
|
|
191
|
-
* @en Square root (Newton's method, deterministic)
|
|
192
|
-
*/
|
|
193
|
-
static sqrt(x: Fixed32): Fixed32;
|
|
194
|
-
/**
|
|
195
|
-
* @zh 向下取整
|
|
196
|
-
* @en Floor
|
|
197
|
-
*/
|
|
198
|
-
static floor(x: Fixed32): Fixed32;
|
|
199
|
-
/**
|
|
200
|
-
* @zh 向上取整
|
|
201
|
-
* @en Ceiling
|
|
202
|
-
*/
|
|
203
|
-
static ceil(x: Fixed32): Fixed32;
|
|
204
|
-
/**
|
|
205
|
-
* @zh 四舍五入
|
|
206
|
-
* @en Round
|
|
207
|
-
*/
|
|
208
|
-
static round(x: Fixed32): Fixed32;
|
|
209
|
-
/**
|
|
210
|
-
* @zh 最小值
|
|
211
|
-
* @en Minimum
|
|
212
|
-
*/
|
|
213
|
-
static min(a: Fixed32, b: Fixed32): Fixed32;
|
|
214
|
-
/**
|
|
215
|
-
* @zh 最大值
|
|
216
|
-
* @en Maximum
|
|
217
|
-
*/
|
|
218
|
-
static max(a: Fixed32, b: Fixed32): Fixed32;
|
|
219
|
-
/**
|
|
220
|
-
* @zh 限制范围
|
|
221
|
-
* @en Clamp to range
|
|
222
|
-
*/
|
|
223
|
-
static clamp(x: Fixed32, min: Fixed32, max: Fixed32): Fixed32;
|
|
224
|
-
/**
|
|
225
|
-
* @zh 线性插值
|
|
226
|
-
* @en Linear interpolation
|
|
227
|
-
* @param a - @zh 起始值 @en Start value
|
|
228
|
-
* @param b - @zh 结束值 @en End value
|
|
229
|
-
* @param t - @zh 插值参数 (0-1) @en Interpolation parameter (0-1)
|
|
230
|
-
*/
|
|
231
|
-
static lerp(a: Fixed32, b: Fixed32, t: Fixed32): Fixed32;
|
|
232
|
-
/**
|
|
233
|
-
* @zh 符号函数
|
|
234
|
-
* @en Sign function
|
|
235
|
-
* @returns @zh -1, 0, 或 1 @en -1, 0, or 1
|
|
236
|
-
*/
|
|
237
|
-
static sign(x: Fixed32): Fixed32;
|
|
238
|
-
/**
|
|
239
|
-
* @zh 加法(静态)
|
|
240
|
-
* @en Addition (static)
|
|
241
|
-
*/
|
|
242
|
-
static add(a: Fixed32, b: Fixed32): Fixed32;
|
|
243
|
-
/**
|
|
244
|
-
* @zh 减法(静态)
|
|
245
|
-
* @en Subtraction (static)
|
|
246
|
-
*/
|
|
247
|
-
static sub(a: Fixed32, b: Fixed32): Fixed32;
|
|
248
|
-
/**
|
|
249
|
-
* @zh 乘法(静态)
|
|
250
|
-
* @en Multiplication (static)
|
|
251
|
-
*/
|
|
252
|
-
static mul(a: Fixed32, b: Fixed32): Fixed32;
|
|
253
|
-
/**
|
|
254
|
-
* @zh 除法(静态)
|
|
255
|
-
* @en Division (static)
|
|
256
|
-
*/
|
|
257
|
-
static div(a: Fixed32, b: Fixed32): Fixed32;
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* @zh Fixed32 数据接口,用于序列化
|
|
261
|
-
* @en Fixed32 data interface for serialization
|
|
262
|
-
*/
|
|
263
|
-
export interface IFixed32 {
|
|
264
|
-
raw: number;
|
|
265
|
-
}
|
|
266
|
-
//# sourceMappingURL=Fixed32.d.ts.map
|
package/bin/Fixed32.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Fixed32.d.ts","sourceRoot":"","sources":["../src/Fixed32.ts"],"names":[],"mappings":"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"}
|
package/bin/Fixed32.js
DELETED
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @zh Q16.16 定点数,用于确定性计算(帧同步)
|
|
3
|
-
* @en Q16.16 fixed-point number for deterministic calculations (lockstep)
|
|
4
|
-
*
|
|
5
|
-
* @zh 使用 16 位整数部分 + 16 位小数部分,范围 ±32767.99998
|
|
6
|
-
* @en Uses 16-bit integer + 16-bit fraction, range ±32767.99998
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const a = Fixed32.from(3.14);
|
|
11
|
-
* const b = Fixed32.from(2);
|
|
12
|
-
* const c = a.mul(b); // 6.28
|
|
13
|
-
* console.log(c.toNumber());
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export class Fixed32 {
|
|
17
|
-
// ==================== 构造 ====================
|
|
18
|
-
/**
|
|
19
|
-
* @zh 私有构造函数,使用静态方法创建实例
|
|
20
|
-
* @en Private constructor, use static methods to create instances
|
|
21
|
-
*/
|
|
22
|
-
constructor(raw) {
|
|
23
|
-
// 确保是 32 位有符号整数
|
|
24
|
-
this.raw = raw | 0;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @zh 从浮点数创建定点数
|
|
28
|
-
* @en Create fixed-point from floating-point number
|
|
29
|
-
* @param n - @zh 浮点数值 @en Floating-point value
|
|
30
|
-
*/
|
|
31
|
-
static from(n) {
|
|
32
|
-
return new Fixed32(Math.round(n * Fixed32.SCALE));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @zh 从原始整数值创建定点数
|
|
36
|
-
* @en Create fixed-point from raw integer value
|
|
37
|
-
* @param raw - @zh 原始值 @en Raw value
|
|
38
|
-
*/
|
|
39
|
-
static fromRaw(raw) {
|
|
40
|
-
return new Fixed32(raw);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @zh 从整数创建定点数(无精度损失)
|
|
44
|
-
* @en Create fixed-point from integer (no precision loss)
|
|
45
|
-
* @param n - @zh 整数值 @en Integer value
|
|
46
|
-
*/
|
|
47
|
-
static fromInt(n) {
|
|
48
|
-
return new Fixed32((n | 0) << Fixed32.FRACTION_BITS);
|
|
49
|
-
}
|
|
50
|
-
// ==================== 转换 ====================
|
|
51
|
-
/**
|
|
52
|
-
* @zh 转换为浮点数
|
|
53
|
-
* @en Convert to floating-point number
|
|
54
|
-
*/
|
|
55
|
-
toNumber() {
|
|
56
|
-
return this.raw / Fixed32.SCALE;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* @zh 获取原始整数值
|
|
60
|
-
* @en Get raw integer value
|
|
61
|
-
*/
|
|
62
|
-
toRaw() {
|
|
63
|
-
return this.raw;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @zh 转换为整数(向下取整)
|
|
67
|
-
* @en Convert to integer (floor)
|
|
68
|
-
*/
|
|
69
|
-
toInt() {
|
|
70
|
-
return this.raw >> Fixed32.FRACTION_BITS;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @zh 转换为字符串
|
|
74
|
-
* @en Convert to string
|
|
75
|
-
*/
|
|
76
|
-
toString() {
|
|
77
|
-
return `Fixed32(${this.toNumber().toFixed(5)})`;
|
|
78
|
-
}
|
|
79
|
-
// ==================== 基础运算 ====================
|
|
80
|
-
/**
|
|
81
|
-
* @zh 加法
|
|
82
|
-
* @en Addition
|
|
83
|
-
*/
|
|
84
|
-
add(other) {
|
|
85
|
-
return new Fixed32(this.raw + other.raw);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* @zh 减法
|
|
89
|
-
* @en Subtraction
|
|
90
|
-
*/
|
|
91
|
-
sub(other) {
|
|
92
|
-
return new Fixed32(this.raw - other.raw);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* @zh 乘法(使用 64 位中间结果防止溢出)
|
|
96
|
-
* @en Multiplication (uses 64-bit intermediate to prevent overflow)
|
|
97
|
-
*/
|
|
98
|
-
mul(other) {
|
|
99
|
-
// 拆分为高低 16 位进行乘法,避免溢出
|
|
100
|
-
const a = this.raw;
|
|
101
|
-
const b = other.raw;
|
|
102
|
-
// 使用 BigInt 确保精度(JS 数字在大数时会丢失精度)
|
|
103
|
-
// 或者使用拆分法
|
|
104
|
-
const aLow = a & 0xFFFF;
|
|
105
|
-
const aHigh = a >> 16;
|
|
106
|
-
const bLow = b & 0xFFFF;
|
|
107
|
-
const bHigh = b >> 16;
|
|
108
|
-
// (aHigh * 2^16 + aLow) * (bHigh * 2^16 + bLow) / 2^16
|
|
109
|
-
// = aHigh * bHigh * 2^16 + aHigh * bLow + aLow * bHigh + aLow * bLow / 2^16
|
|
110
|
-
const lowLow = (aLow * bLow) >>> 16;
|
|
111
|
-
const lowHigh = aLow * bHigh;
|
|
112
|
-
const highLow = aHigh * bLow;
|
|
113
|
-
const highHigh = aHigh * bHigh;
|
|
114
|
-
const result = highHigh * Fixed32.SCALE + lowHigh + highLow + lowLow;
|
|
115
|
-
return new Fixed32(result | 0);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* @zh 除法
|
|
119
|
-
* @en Division
|
|
120
|
-
* @throws @zh 除数为零时抛出错误 @en Throws when dividing by zero
|
|
121
|
-
*/
|
|
122
|
-
div(other) {
|
|
123
|
-
if (other.raw === 0) {
|
|
124
|
-
throw new Error('Fixed32: Division by zero');
|
|
125
|
-
}
|
|
126
|
-
// 先左移再除,保持精度
|
|
127
|
-
const result = ((this.raw * Fixed32.SCALE) / other.raw) | 0;
|
|
128
|
-
return new Fixed32(result);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* @zh 取模运算
|
|
132
|
-
* @en Modulo operation
|
|
133
|
-
*/
|
|
134
|
-
mod(other) {
|
|
135
|
-
return new Fixed32(this.raw % other.raw);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* @zh 取反
|
|
139
|
-
* @en Negation
|
|
140
|
-
*/
|
|
141
|
-
neg() {
|
|
142
|
-
return new Fixed32(-this.raw);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* @zh 绝对值
|
|
146
|
-
* @en Absolute value
|
|
147
|
-
*/
|
|
148
|
-
abs() {
|
|
149
|
-
return this.raw >= 0 ? this : new Fixed32(-this.raw);
|
|
150
|
-
}
|
|
151
|
-
// ==================== 比较运算 ====================
|
|
152
|
-
/**
|
|
153
|
-
* @zh 等于
|
|
154
|
-
* @en Equal to
|
|
155
|
-
*/
|
|
156
|
-
eq(other) {
|
|
157
|
-
return this.raw === other.raw;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* @zh 不等于
|
|
161
|
-
* @en Not equal to
|
|
162
|
-
*/
|
|
163
|
-
ne(other) {
|
|
164
|
-
return this.raw !== other.raw;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* @zh 小于
|
|
168
|
-
* @en Less than
|
|
169
|
-
*/
|
|
170
|
-
lt(other) {
|
|
171
|
-
return this.raw < other.raw;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* @zh 小于等于
|
|
175
|
-
* @en Less than or equal to
|
|
176
|
-
*/
|
|
177
|
-
le(other) {
|
|
178
|
-
return this.raw <= other.raw;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* @zh 大于
|
|
182
|
-
* @en Greater than
|
|
183
|
-
*/
|
|
184
|
-
gt(other) {
|
|
185
|
-
return this.raw > other.raw;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* @zh 大于等于
|
|
189
|
-
* @en Greater than or equal to
|
|
190
|
-
*/
|
|
191
|
-
ge(other) {
|
|
192
|
-
return this.raw >= other.raw;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* @zh 检查是否为零
|
|
196
|
-
* @en Check if zero
|
|
197
|
-
*/
|
|
198
|
-
isZero() {
|
|
199
|
-
return this.raw === 0;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* @zh 检查是否为正数
|
|
203
|
-
* @en Check if positive
|
|
204
|
-
*/
|
|
205
|
-
isPositive() {
|
|
206
|
-
return this.raw > 0;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* @zh 检查是否为负数
|
|
210
|
-
* @en Check if negative
|
|
211
|
-
*/
|
|
212
|
-
isNegative() {
|
|
213
|
-
return this.raw < 0;
|
|
214
|
-
}
|
|
215
|
-
// ==================== 数学函数 ====================
|
|
216
|
-
/**
|
|
217
|
-
* @zh 平方根(牛顿迭代法,确定性)
|
|
218
|
-
* @en Square root (Newton's method, deterministic)
|
|
219
|
-
*/
|
|
220
|
-
static sqrt(x) {
|
|
221
|
-
if (x.raw <= 0)
|
|
222
|
-
return Fixed32.ZERO;
|
|
223
|
-
// 牛顿迭代法
|
|
224
|
-
let guess = x.raw;
|
|
225
|
-
let prev = 0;
|
|
226
|
-
// 固定迭代次数确保确定性
|
|
227
|
-
for (let i = 0; i < 16; i++) {
|
|
228
|
-
prev = guess;
|
|
229
|
-
guess = ((guess + ((x.raw * Fixed32.SCALE) / guess) | 0) >> 1) | 0;
|
|
230
|
-
if (guess === prev)
|
|
231
|
-
break;
|
|
232
|
-
}
|
|
233
|
-
return new Fixed32(guess);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* @zh 向下取整
|
|
237
|
-
* @en Floor
|
|
238
|
-
*/
|
|
239
|
-
static floor(x) {
|
|
240
|
-
return new Fixed32(x.raw & ~(Fixed32.SCALE - 1));
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* @zh 向上取整
|
|
244
|
-
* @en Ceiling
|
|
245
|
-
*/
|
|
246
|
-
static ceil(x) {
|
|
247
|
-
const frac = x.raw & (Fixed32.SCALE - 1);
|
|
248
|
-
if (frac === 0)
|
|
249
|
-
return x;
|
|
250
|
-
return new Fixed32((x.raw & ~(Fixed32.SCALE - 1)) + Fixed32.SCALE);
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* @zh 四舍五入
|
|
254
|
-
* @en Round
|
|
255
|
-
*/
|
|
256
|
-
static round(x) {
|
|
257
|
-
return new Fixed32((x.raw + (Fixed32.SCALE >> 1)) & ~(Fixed32.SCALE - 1));
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* @zh 最小值
|
|
261
|
-
* @en Minimum
|
|
262
|
-
*/
|
|
263
|
-
static min(a, b) {
|
|
264
|
-
return a.raw < b.raw ? a : b;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* @zh 最大值
|
|
268
|
-
* @en Maximum
|
|
269
|
-
*/
|
|
270
|
-
static max(a, b) {
|
|
271
|
-
return a.raw > b.raw ? a : b;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* @zh 限制范围
|
|
275
|
-
* @en Clamp to range
|
|
276
|
-
*/
|
|
277
|
-
static clamp(x, min, max) {
|
|
278
|
-
if (x.raw < min.raw)
|
|
279
|
-
return min;
|
|
280
|
-
if (x.raw > max.raw)
|
|
281
|
-
return max;
|
|
282
|
-
return x;
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* @zh 线性插值
|
|
286
|
-
* @en Linear interpolation
|
|
287
|
-
* @param a - @zh 起始值 @en Start value
|
|
288
|
-
* @param b - @zh 结束值 @en End value
|
|
289
|
-
* @param t - @zh 插值参数 (0-1) @en Interpolation parameter (0-1)
|
|
290
|
-
*/
|
|
291
|
-
static lerp(a, b, t) {
|
|
292
|
-
// a + (b - a) * t
|
|
293
|
-
return a.add(b.sub(a).mul(t));
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* @zh 符号函数
|
|
297
|
-
* @en Sign function
|
|
298
|
-
* @returns @zh -1, 0, 或 1 @en -1, 0, or 1
|
|
299
|
-
*/
|
|
300
|
-
static sign(x) {
|
|
301
|
-
if (x.raw > 0)
|
|
302
|
-
return Fixed32.ONE;
|
|
303
|
-
if (x.raw < 0)
|
|
304
|
-
return Fixed32.NEG_ONE;
|
|
305
|
-
return Fixed32.ZERO;
|
|
306
|
-
}
|
|
307
|
-
// ==================== 静态运算(便捷方法) ====================
|
|
308
|
-
/**
|
|
309
|
-
* @zh 加法(静态)
|
|
310
|
-
* @en Addition (static)
|
|
311
|
-
*/
|
|
312
|
-
static add(a, b) {
|
|
313
|
-
return a.add(b);
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* @zh 减法(静态)
|
|
317
|
-
* @en Subtraction (static)
|
|
318
|
-
*/
|
|
319
|
-
static sub(a, b) {
|
|
320
|
-
return a.sub(b);
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* @zh 乘法(静态)
|
|
324
|
-
* @en Multiplication (static)
|
|
325
|
-
*/
|
|
326
|
-
static mul(a, b) {
|
|
327
|
-
return a.mul(b);
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* @zh 除法(静态)
|
|
331
|
-
* @en Division (static)
|
|
332
|
-
*/
|
|
333
|
-
static div(a, b) {
|
|
334
|
-
return a.div(b);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* @zh 小数位数
|
|
339
|
-
* @en Fraction bits
|
|
340
|
-
*/
|
|
341
|
-
Fixed32.FRACTION_BITS = 16;
|
|
342
|
-
/**
|
|
343
|
-
* @zh 缩放因子 (2^16 = 65536)
|
|
344
|
-
* @en Scale factor (2^16 = 65536)
|
|
345
|
-
*/
|
|
346
|
-
Fixed32.SCALE = 65536;
|
|
347
|
-
/**
|
|
348
|
-
* @zh 最大值 (约 32767.99998)
|
|
349
|
-
* @en Maximum value (approximately 32767.99998)
|
|
350
|
-
*/
|
|
351
|
-
Fixed32.MAX_VALUE = 0x7FFFFFFF;
|
|
352
|
-
/**
|
|
353
|
-
* @zh 最小值 (约 -32768)
|
|
354
|
-
* @en Minimum value (approximately -32768)
|
|
355
|
-
*/
|
|
356
|
-
Fixed32.MIN_VALUE = -0x80000000;
|
|
357
|
-
/**
|
|
358
|
-
* @zh 精度 (1/65536 ≈ 0.0000153)
|
|
359
|
-
* @en Precision (1/65536 ≈ 0.0000153)
|
|
360
|
-
*/
|
|
361
|
-
Fixed32.EPSILON = 1;
|
|
362
|
-
// ==================== 常量 ====================
|
|
363
|
-
/** @zh 零 @en Zero */
|
|
364
|
-
Fixed32.ZERO = new Fixed32(0);
|
|
365
|
-
/** @zh 一 @en One */
|
|
366
|
-
Fixed32.ONE = new Fixed32(Fixed32.SCALE);
|
|
367
|
-
/** @zh 负一 @en Negative one */
|
|
368
|
-
Fixed32.NEG_ONE = new Fixed32(-Fixed32.SCALE);
|
|
369
|
-
/** @zh 二分之一 @en One half */
|
|
370
|
-
Fixed32.HALF = new Fixed32(Fixed32.SCALE >> 1);
|
|
371
|
-
/** @zh 圆周率 π @en Pi */
|
|
372
|
-
Fixed32.PI = new Fixed32(205887); // π * 65536
|
|
373
|
-
/** @zh 2π @en Two Pi */
|
|
374
|
-
Fixed32.TWO_PI = new Fixed32(411775); // 2π * 65536
|
|
375
|
-
/** @zh π/2 @en Pi divided by 2 */
|
|
376
|
-
Fixed32.HALF_PI = new Fixed32(102944); // π/2 * 65536
|
|
377
|
-
/** @zh 弧度转角度系数 (180/π) @en Radians to degrees factor */
|
|
378
|
-
Fixed32.RAD_TO_DEG = new Fixed32(3754936); // (180/π) * 65536
|
|
379
|
-
/** @zh 角度转弧度系数 (π/180) @en Degrees to radians factor */
|
|
380
|
-
Fixed32.DEG_TO_RAD = new Fixed32(1144); // (π/180) * 65536
|
|
381
|
-
//# sourceMappingURL=Fixed32.js.map
|
package/bin/Fixed32.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Fixed32.js","sourceRoot":"","sources":["../src/Fixed32.ts"],"names":[],"mappings":"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"}
|