@sarmal/core 0.25.1 → 0.27.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/auto-init.cjs +107 -104
- package/dist/auto-init.cjs.map +1 -1
- package/dist/auto-init.js +107 -104
- package/dist/auto-init.js.map +1 -1
- package/dist/cli.js +1048 -0
- package/dist/cli.js.map +1 -0
- package/dist/curves/artemis2.cjs +5 -5
- package/dist/curves/artemis2.cjs.map +1 -1
- package/dist/curves/artemis2.d.cts +1 -1
- package/dist/curves/artemis2.d.ts +1 -1
- package/dist/curves/artemis2.js +5 -5
- package/dist/curves/artemis2.js.map +1 -1
- package/dist/curves/astroid.cjs +3 -3
- package/dist/curves/astroid.cjs.map +1 -1
- package/dist/curves/astroid.d.cts +1 -1
- package/dist/curves/astroid.d.ts +1 -1
- package/dist/curves/astroid.js +3 -3
- package/dist/curves/astroid.js.map +1 -1
- package/dist/curves/deltoid.cjs +3 -3
- package/dist/curves/deltoid.cjs.map +1 -1
- package/dist/curves/deltoid.d.cts +1 -1
- package/dist/curves/deltoid.d.ts +1 -1
- package/dist/curves/deltoid.js +3 -3
- package/dist/curves/deltoid.js.map +1 -1
- package/dist/curves/epicycloid3.cjs +3 -3
- package/dist/curves/epicycloid3.cjs.map +1 -1
- package/dist/curves/epicycloid3.d.cts +1 -1
- package/dist/curves/epicycloid3.d.ts +1 -1
- package/dist/curves/epicycloid3.js +3 -3
- package/dist/curves/epicycloid3.js.map +1 -1
- package/dist/curves/epitrochoid7.cjs +7 -7
- package/dist/curves/epitrochoid7.cjs.map +1 -1
- package/dist/curves/epitrochoid7.d.cts +1 -1
- package/dist/curves/epitrochoid7.d.ts +1 -1
- package/dist/curves/epitrochoid7.js +7 -7
- package/dist/curves/epitrochoid7.js.map +1 -1
- package/dist/curves/index.cjs +63 -63
- package/dist/curves/index.cjs.map +1 -1
- package/dist/curves/index.d.cts +1 -1
- package/dist/curves/index.d.ts +1 -1
- package/dist/curves/index.js +63 -63
- package/dist/curves/index.js.map +1 -1
- package/dist/curves/lame.cjs +4 -4
- package/dist/curves/lame.cjs.map +1 -1
- package/dist/curves/lame.d.cts +1 -1
- package/dist/curves/lame.d.ts +1 -1
- package/dist/curves/lame.js +4 -4
- package/dist/curves/lame.js.map +1 -1
- package/dist/curves/lissajous32.cjs +4 -4
- package/dist/curves/lissajous32.cjs.map +1 -1
- package/dist/curves/lissajous32.d.cts +1 -1
- package/dist/curves/lissajous32.d.ts +1 -1
- package/dist/curves/lissajous32.js +4 -4
- package/dist/curves/lissajous32.js.map +1 -1
- package/dist/curves/lissajous43.cjs +4 -4
- package/dist/curves/lissajous43.cjs.map +1 -1
- package/dist/curves/lissajous43.d.cts +1 -1
- package/dist/curves/lissajous43.d.ts +1 -1
- package/dist/curves/lissajous43.js +4 -4
- package/dist/curves/lissajous43.js.map +1 -1
- package/dist/curves/rose3.cjs +4 -4
- package/dist/curves/rose3.cjs.map +1 -1
- package/dist/curves/rose3.d.cts +1 -1
- package/dist/curves/rose3.d.ts +1 -1
- package/dist/curves/rose3.js +4 -4
- package/dist/curves/rose3.js.map +1 -1
- package/dist/curves/rose5.cjs +4 -4
- package/dist/curves/rose5.cjs.map +1 -1
- package/dist/curves/rose5.d.cts +1 -1
- package/dist/curves/rose5.d.ts +1 -1
- package/dist/curves/rose5.js +4 -4
- package/dist/curves/rose5.js.map +1 -1
- package/dist/curves/rose52.cjs +4 -4
- package/dist/curves/rose52.cjs.map +1 -1
- package/dist/curves/rose52.d.cts +1 -1
- package/dist/curves/rose52.d.ts +1 -1
- package/dist/curves/rose52.js +4 -4
- package/dist/curves/rose52.js.map +1 -1
- package/dist/curves/star.cjs +6 -6
- package/dist/curves/star.cjs.map +1 -1
- package/dist/curves/star.d.cts +1 -1
- package/dist/curves/star.d.ts +1 -1
- package/dist/curves/star.js +6 -6
- package/dist/curves/star.js.map +1 -1
- package/dist/curves/star4.cjs +6 -6
- package/dist/curves/star4.cjs.map +1 -1
- package/dist/curves/star4.d.cts +2 -2
- package/dist/curves/star4.d.ts +2 -2
- package/dist/curves/star4.js +6 -6
- package/dist/curves/star4.js.map +1 -1
- package/dist/curves/star7.cjs +6 -6
- package/dist/curves/star7.cjs.map +1 -1
- package/dist/curves/star7.d.cts +2 -2
- package/dist/curves/star7.d.ts +2 -2
- package/dist/curves/star7.js +6 -6
- package/dist/curves/star7.js.map +1 -1
- package/dist/index.cjs +107 -104
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -45
- package/dist/index.d.ts +13 -45
- package/dist/index.js +107 -104
- package/dist/index.js.map +1 -1
- package/dist/renderer-shared-OR--cv-t.d.ts +49 -0
- package/dist/renderer-shared-jqw_Q1WO.d.cts +49 -0
- package/dist/terminal.cjs +593 -0
- package/dist/terminal.cjs.map +1 -0
- package/dist/terminal.d.cts +44 -0
- package/dist/terminal.d.ts +44 -0
- package/dist/terminal.js +585 -0
- package/dist/terminal.js.map +1 -0
- package/dist/{types-Z9i1_AQZ.d.cts → types-zbxUgcmZ.d.cts} +30 -30
- package/dist/{types-Z9i1_AQZ.d.ts → types-zbxUgcmZ.d.ts} +30 -30
- package/package.json +11 -1
package/dist/auto-init.js
CHANGED
|
@@ -72,21 +72,21 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
72
72
|
}
|
|
73
73
|
let curve = resolveCurve(curveDef);
|
|
74
74
|
const trail = new CircularBuffer(trailLength);
|
|
75
|
-
let
|
|
75
|
+
let phase = 0;
|
|
76
76
|
let actualTime = 0;
|
|
77
77
|
let userSpeedOverride = null;
|
|
78
78
|
let morphCurveB = null;
|
|
79
79
|
let _morphAlpha = null;
|
|
80
80
|
let _morphStrategy = "normalized";
|
|
81
81
|
let _speedTransition = null;
|
|
82
|
-
function sampleSkeleton(c,
|
|
82
|
+
function sampleSkeleton(c, samplePhase) {
|
|
83
83
|
if (c.skeletonFn) {
|
|
84
|
-
return c.skeletonFn(
|
|
84
|
+
return c.skeletonFn(samplePhase);
|
|
85
85
|
}
|
|
86
86
|
if (c.skeleton === "live") {
|
|
87
|
-
return c.fn(
|
|
87
|
+
return c.fn(samplePhase, actualTime, EMPTY_PARAMS);
|
|
88
88
|
}
|
|
89
|
-
return c.fn(
|
|
89
|
+
return c.fn(samplePhase, 0, EMPTY_PARAMS);
|
|
90
90
|
}
|
|
91
91
|
return {
|
|
92
92
|
tick(deltaTime) {
|
|
@@ -104,15 +104,16 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
104
104
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
105
105
|
effectiveSpeed = lerp(effectiveSpeed, morphCurveB.speed, _morphAlpha);
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
phase = (phase + effectiveSpeed * deltaTime) % curve.period;
|
|
108
108
|
actualTime += deltaTime;
|
|
109
109
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
110
|
-
const a = curve.fn(
|
|
111
|
-
const
|
|
112
|
-
|
|
110
|
+
const a = curve.fn(phase, actualTime, EMPTY_PARAMS);
|
|
111
|
+
const phaseB =
|
|
112
|
+
_morphStrategy === "normalized" ? (phase / curve.period) * morphCurveB.period : phase;
|
|
113
|
+
const b = morphCurveB.fn(phaseB, actualTime, EMPTY_PARAMS);
|
|
113
114
|
trail.push(a.x + (b.x - a.x) * _morphAlpha, a.y + (b.y - a.y) * _morphAlpha);
|
|
114
115
|
} else {
|
|
115
|
-
const point = curve.fn(
|
|
116
|
+
const point = curve.fn(phase, actualTime, EMPTY_PARAMS);
|
|
116
117
|
trail.push(point.x, point.y);
|
|
117
118
|
}
|
|
118
119
|
return trail.toArray();
|
|
@@ -130,30 +131,30 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
130
131
|
return _morphAlpha;
|
|
131
132
|
},
|
|
132
133
|
reset() {
|
|
133
|
-
|
|
134
|
+
phase = 0;
|
|
134
135
|
actualTime = 0;
|
|
135
136
|
trail.clear();
|
|
136
137
|
},
|
|
137
|
-
jump(
|
|
138
|
-
|
|
138
|
+
jump(newPhase, { clearTrail = false } = {}) {
|
|
139
|
+
phase = ((newPhase % curve.period) + curve.period) % curve.period;
|
|
139
140
|
if (clearTrail) {
|
|
140
141
|
trail.clear();
|
|
141
142
|
}
|
|
142
143
|
},
|
|
143
|
-
seek(
|
|
144
|
+
seek(targetPhase, { wrap = false, step = curve.period / trailLength } = {}) {
|
|
144
145
|
const advance = curve.speed * step;
|
|
145
|
-
const target = ((
|
|
146
|
+
const target = ((targetPhase % curve.period) + curve.period) % curve.period;
|
|
146
147
|
const targetTime = target / curve.speed;
|
|
147
|
-
|
|
148
|
+
phase = target;
|
|
148
149
|
actualTime = targetTime;
|
|
149
150
|
trail.clear();
|
|
150
151
|
const pointsFromStart = Math.floor(target / advance) + 1;
|
|
151
152
|
const count = wrap ? trailLength : Math.min(trailLength, pointsFromStart);
|
|
152
153
|
for (let i = count - 1; i >= 0; i--) {
|
|
153
|
-
const
|
|
154
|
-
const
|
|
155
|
-
const
|
|
156
|
-
const point = curve.fn(
|
|
154
|
+
const samplePhase = target - i * advance;
|
|
155
|
+
const wrappedPhase = ((samplePhase % curve.period) + curve.period) % curve.period;
|
|
156
|
+
const elapsed = targetTime - i * step;
|
|
157
|
+
const point = curve.fn(wrappedPhase, elapsed, EMPTY_PARAMS);
|
|
157
158
|
trail.push(point.x, point.y);
|
|
158
159
|
}
|
|
159
160
|
},
|
|
@@ -166,13 +167,13 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
166
167
|
const frozenStrategy = _morphStrategy;
|
|
167
168
|
curve = {
|
|
168
169
|
...frozenB,
|
|
169
|
-
fn: (
|
|
170
|
-
const a = frozenA.fn(
|
|
171
|
-
const
|
|
170
|
+
fn: (samplePhase, elapsed, params) => {
|
|
171
|
+
const a = frozenA.fn(samplePhase, elapsed, params);
|
|
172
|
+
const phaseB =
|
|
172
173
|
frozenStrategy === "normalized"
|
|
173
|
-
? (
|
|
174
|
-
:
|
|
175
|
-
const b = frozenB.fn(
|
|
174
|
+
? (samplePhase / frozenA.period) * frozenB.period
|
|
175
|
+
: samplePhase;
|
|
176
|
+
const b = frozenB.fn(phaseB, elapsed, params);
|
|
176
177
|
return {
|
|
177
178
|
x: a.x + (b.x - a.x) * frozenAlpha,
|
|
178
179
|
y: a.y + (b.y - a.y) * frozenAlpha,
|
|
@@ -190,7 +191,7 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
190
191
|
completeMorph() {
|
|
191
192
|
if (morphCurveB !== null) {
|
|
192
193
|
if (_morphStrategy === "normalized" && curve.period !== morphCurveB.period) {
|
|
193
|
-
|
|
194
|
+
phase = (phase / curve.period) * morphCurveB.period;
|
|
194
195
|
}
|
|
195
196
|
curve = morphCurveB;
|
|
196
197
|
}
|
|
@@ -202,13 +203,13 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
202
203
|
const points2 = new Array(steps);
|
|
203
204
|
if (morphCurveB !== null && _morphAlpha !== null) {
|
|
204
205
|
for (let i = 0; i < steps; i++) {
|
|
205
|
-
const
|
|
206
|
-
const a = sampleSkeleton(curve,
|
|
207
|
-
const
|
|
206
|
+
const samplePhase = (i / (steps - 1)) * curve.period;
|
|
207
|
+
const a = sampleSkeleton(curve, samplePhase);
|
|
208
|
+
const phaseB =
|
|
208
209
|
_morphStrategy === "normalized"
|
|
209
|
-
? (
|
|
210
|
-
:
|
|
211
|
-
const b = sampleSkeleton(morphCurveB,
|
|
210
|
+
? (samplePhase / curve.period) * morphCurveB.period
|
|
211
|
+
: samplePhase;
|
|
212
|
+
const b = sampleSkeleton(morphCurveB, phaseB);
|
|
212
213
|
points2[i] = {
|
|
213
214
|
x: a.x + (b.x - a.x) * _morphAlpha,
|
|
214
215
|
y: a.y + (b.y - a.y) * _morphAlpha,
|
|
@@ -217,8 +218,8 @@ function createEngine(curveDef, trailLength = 120) {
|
|
|
217
218
|
return points2;
|
|
218
219
|
}
|
|
219
220
|
for (let i = 0; i < steps; i++) {
|
|
220
|
-
const
|
|
221
|
-
points2[i] = sampleSkeleton(curve,
|
|
221
|
+
const samplePhase = (i / (steps - 1)) * curve.period;
|
|
222
|
+
points2[i] = sampleSkeleton(curve, samplePhase);
|
|
222
223
|
}
|
|
223
224
|
return points2;
|
|
224
225
|
},
|
|
@@ -752,8 +753,8 @@ function createRenderer(options) {
|
|
|
752
753
|
if (!engine.isLiveSkeleton) {
|
|
753
754
|
buildSkeletonCanvas();
|
|
754
755
|
}
|
|
755
|
-
if (options.
|
|
756
|
-
engine.seek(options.
|
|
756
|
+
if (options.initialPhase !== void 0) {
|
|
757
|
+
engine.seek(options.initialPhase);
|
|
757
758
|
}
|
|
758
759
|
renderFrame(0);
|
|
759
760
|
const shouldAutoStart = options.autoStart !== false;
|
|
@@ -887,8 +888,10 @@ function sampleCurveSkeleton(curveDef) {
|
|
|
887
888
|
const samples = Math.ceil(period * 50);
|
|
888
889
|
const pts = Array.from({ length: samples });
|
|
889
890
|
for (let i = 0; i < samples; i++) {
|
|
890
|
-
const
|
|
891
|
-
pts[i] = curveDef.skeletonFn
|
|
891
|
+
const phase = (i / (samples - 1)) * period;
|
|
892
|
+
pts[i] = curveDef.skeletonFn
|
|
893
|
+
? curveDef.skeletonFn(phase)
|
|
894
|
+
: curveDef.fn(phase, 0, EMPTY_PARAMS2);
|
|
892
895
|
}
|
|
893
896
|
return pts;
|
|
894
897
|
}
|
|
@@ -1099,8 +1102,8 @@ function createSVGRenderer(options) {
|
|
|
1099
1102
|
animationId = requestAnimationFrame(loop);
|
|
1100
1103
|
}
|
|
1101
1104
|
}
|
|
1102
|
-
if (options.
|
|
1103
|
-
engine.seek(options.
|
|
1105
|
+
if (options.initialPhase !== void 0) {
|
|
1106
|
+
engine.seek(options.initialPhase);
|
|
1104
1107
|
}
|
|
1105
1108
|
renderFrame(0);
|
|
1106
1109
|
const shouldAutoStart = options.autoStart !== false;
|
|
@@ -1256,7 +1259,7 @@ function catmullRom1D(p0, p1, p2, p3, u) {
|
|
|
1256
1259
|
(-p0 + 3 * p1 - 3 * p2 + p3) * u3)
|
|
1257
1260
|
);
|
|
1258
1261
|
}
|
|
1259
|
-
function evaluateCatmullRom(points2,
|
|
1262
|
+
function evaluateCatmullRom(points2, phase) {
|
|
1260
1263
|
const N = points2.length;
|
|
1261
1264
|
if (N === 0) {
|
|
1262
1265
|
return { x: 0, y: 0 };
|
|
@@ -1264,13 +1267,13 @@ function evaluateCatmullRom(points2, t) {
|
|
|
1264
1267
|
if (N === 1) {
|
|
1265
1268
|
return { x: points2[0][0], y: points2[0][1] };
|
|
1266
1269
|
}
|
|
1267
|
-
|
|
1270
|
+
phase = ((phase % PERIOD) + PERIOD) % PERIOD;
|
|
1268
1271
|
const segmentSize = PERIOD / N;
|
|
1269
|
-
let i = Math.floor(
|
|
1272
|
+
let i = Math.floor(phase / segmentSize);
|
|
1270
1273
|
if (i >= N) {
|
|
1271
1274
|
i = N - 1;
|
|
1272
1275
|
}
|
|
1273
|
-
let u = (
|
|
1276
|
+
let u = (phase - i * segmentSize) / segmentSize;
|
|
1274
1277
|
u = Math.max(0, Math.min(1, u));
|
|
1275
1278
|
const p0 = points2[(i - 1 + N) % N];
|
|
1276
1279
|
const p1 = points2[i];
|
|
@@ -1300,7 +1303,7 @@ function drawCurve(points2, opts) {
|
|
|
1300
1303
|
const pts = points2.map(([x, y]) => [x, y]);
|
|
1301
1304
|
return {
|
|
1302
1305
|
name: opts?.name ?? "drawn",
|
|
1303
|
-
fn: (
|
|
1306
|
+
fn: (phase) => evaluateCatmullRom(pts, phase),
|
|
1304
1307
|
period: PERIOD,
|
|
1305
1308
|
};
|
|
1306
1309
|
}
|
|
@@ -1336,9 +1339,9 @@ var artemis2 = {
|
|
|
1336
1339
|
|
|
1337
1340
|
// src/curves/astroid.ts
|
|
1338
1341
|
var TWO_PI2 = Math.PI * 2;
|
|
1339
|
-
function astroidFn(
|
|
1340
|
-
const c = Math.cos(
|
|
1341
|
-
const s = Math.sin(
|
|
1342
|
+
function astroidFn(phase, _elapsed, _params) {
|
|
1343
|
+
const c = Math.cos(phase);
|
|
1344
|
+
const s = Math.sin(phase);
|
|
1342
1345
|
return {
|
|
1343
1346
|
x: c * c * c,
|
|
1344
1347
|
y: s * s * s,
|
|
@@ -1353,10 +1356,10 @@ var astroid = {
|
|
|
1353
1356
|
|
|
1354
1357
|
// src/curves/deltoid.ts
|
|
1355
1358
|
var TWO_PI3 = Math.PI * 2;
|
|
1356
|
-
function deltoidFn(
|
|
1359
|
+
function deltoidFn(phase, _elapsed, _params) {
|
|
1357
1360
|
return {
|
|
1358
|
-
x: 2 * Math.cos(
|
|
1359
|
-
y: 2 * Math.sin(
|
|
1361
|
+
x: 2 * Math.cos(phase) + Math.cos(2 * phase),
|
|
1362
|
+
y: 2 * Math.sin(phase) - Math.sin(2 * phase),
|
|
1360
1363
|
};
|
|
1361
1364
|
}
|
|
1362
1365
|
var deltoid = {
|
|
@@ -1368,10 +1371,10 @@ var deltoid = {
|
|
|
1368
1371
|
|
|
1369
1372
|
// src/curves/epicycloid3.ts
|
|
1370
1373
|
var TWO_PI4 = Math.PI * 2;
|
|
1371
|
-
function epicycloid3Fn(
|
|
1374
|
+
function epicycloid3Fn(phase, _elapsed, _params) {
|
|
1372
1375
|
return {
|
|
1373
|
-
x: 4 * Math.cos(
|
|
1374
|
-
y: 4 * Math.sin(
|
|
1376
|
+
x: 4 * Math.cos(phase) - Math.cos(4 * phase),
|
|
1377
|
+
y: 4 * Math.sin(phase) - Math.sin(4 * phase),
|
|
1375
1378
|
};
|
|
1376
1379
|
}
|
|
1377
1380
|
var epicycloid3 = {
|
|
@@ -1383,18 +1386,18 @@ var epicycloid3 = {
|
|
|
1383
1386
|
|
|
1384
1387
|
// src/curves/epitrochoid7.ts
|
|
1385
1388
|
var TWO_PI5 = Math.PI * 2;
|
|
1386
|
-
function epitrochoid7Fn(
|
|
1387
|
-
const d = 1 + 0.55 * Math.sin(
|
|
1389
|
+
function epitrochoid7Fn(phase, _elapsed, _params) {
|
|
1390
|
+
const d = 1 + 0.55 * Math.sin(phase * 0.5);
|
|
1388
1391
|
return {
|
|
1389
|
-
x: 7 * Math.cos(
|
|
1390
|
-
y: 7 * Math.sin(
|
|
1392
|
+
x: 7 * Math.cos(phase) - d * Math.cos(7 * phase),
|
|
1393
|
+
y: 7 * Math.sin(phase) - d * Math.sin(7 * phase),
|
|
1391
1394
|
};
|
|
1392
1395
|
}
|
|
1393
|
-
function epitrochoid7SkeletonFn(
|
|
1396
|
+
function epitrochoid7SkeletonFn(phase) {
|
|
1394
1397
|
const d = 1.275;
|
|
1395
1398
|
return {
|
|
1396
|
-
x: 7 * Math.cos(
|
|
1397
|
-
y: 7 * Math.sin(
|
|
1399
|
+
x: 7 * Math.cos(phase) - d * Math.cos(7 * phase),
|
|
1400
|
+
y: 7 * Math.sin(phase) - d * Math.sin(7 * phase),
|
|
1398
1401
|
};
|
|
1399
1402
|
}
|
|
1400
1403
|
var epitrochoid7 = {
|
|
@@ -1407,11 +1410,11 @@ var epitrochoid7 = {
|
|
|
1407
1410
|
|
|
1408
1411
|
// src/curves/lissajous32.ts
|
|
1409
1412
|
var TWO_PI6 = Math.PI * 2;
|
|
1410
|
-
function lissajous32Fn(
|
|
1411
|
-
const phi =
|
|
1413
|
+
function lissajous32Fn(phase, elapsed, _params) {
|
|
1414
|
+
const phi = elapsed * 0.45;
|
|
1412
1415
|
return {
|
|
1413
|
-
x: Math.sin(3 *
|
|
1414
|
-
y: Math.sin(2 *
|
|
1416
|
+
x: Math.sin(3 * phase + phi),
|
|
1417
|
+
y: Math.sin(2 * phase),
|
|
1415
1418
|
};
|
|
1416
1419
|
}
|
|
1417
1420
|
var lissajous32 = {
|
|
@@ -1424,11 +1427,11 @@ var lissajous32 = {
|
|
|
1424
1427
|
|
|
1425
1428
|
// src/curves/lissajous43.ts
|
|
1426
1429
|
var TWO_PI7 = Math.PI * 2;
|
|
1427
|
-
function lissajous43Fn(
|
|
1428
|
-
const phi =
|
|
1430
|
+
function lissajous43Fn(phase, elapsed, _params) {
|
|
1431
|
+
const phi = elapsed * 0.38;
|
|
1429
1432
|
return {
|
|
1430
|
-
x: Math.sin(4 *
|
|
1431
|
-
y: Math.sin(3 *
|
|
1433
|
+
x: Math.sin(4 * phase + phi),
|
|
1434
|
+
y: Math.sin(3 * phase),
|
|
1432
1435
|
};
|
|
1433
1436
|
}
|
|
1434
1437
|
var lissajous43 = {
|
|
@@ -1441,10 +1444,10 @@ var lissajous43 = {
|
|
|
1441
1444
|
|
|
1442
1445
|
// src/curves/lame.ts
|
|
1443
1446
|
var TWO_PI8 = Math.PI * 2;
|
|
1444
|
-
function lameFn(
|
|
1445
|
-
const p = 1.75 + 1.25 * Math.sin(
|
|
1446
|
-
const c = Math.cos(
|
|
1447
|
-
s = Math.sin(
|
|
1447
|
+
function lameFn(phase, elapsed, _params) {
|
|
1448
|
+
const p = 1.75 + 1.25 * Math.sin(elapsed * 0.48);
|
|
1449
|
+
const c = Math.cos(phase),
|
|
1450
|
+
s = Math.sin(phase);
|
|
1448
1451
|
return {
|
|
1449
1452
|
x: Math.sign(c) * Math.pow(Math.abs(c), p),
|
|
1450
1453
|
y: Math.sign(s) * Math.pow(Math.abs(s), p),
|
|
@@ -1460,11 +1463,11 @@ var lame = {
|
|
|
1460
1463
|
|
|
1461
1464
|
// src/curves/rose3.ts
|
|
1462
1465
|
var TWO_PI9 = Math.PI * 2;
|
|
1463
|
-
function rose3Fn(
|
|
1464
|
-
const r = Math.cos(3 *
|
|
1466
|
+
function rose3Fn(phase, _elapsed, _params) {
|
|
1467
|
+
const r = Math.cos(3 * phase);
|
|
1465
1468
|
return {
|
|
1466
|
-
x: r * Math.cos(
|
|
1467
|
-
y: r * Math.sin(
|
|
1469
|
+
x: r * Math.cos(phase),
|
|
1470
|
+
y: r * Math.sin(phase),
|
|
1468
1471
|
};
|
|
1469
1472
|
}
|
|
1470
1473
|
var rose3 = {
|
|
@@ -1476,11 +1479,11 @@ var rose3 = {
|
|
|
1476
1479
|
|
|
1477
1480
|
// src/curves/rose5.ts
|
|
1478
1481
|
var TWO_PI10 = Math.PI * 2;
|
|
1479
|
-
function rose5Fn(
|
|
1480
|
-
const r = Math.cos(5 *
|
|
1482
|
+
function rose5Fn(phase, _elapsed, _params) {
|
|
1483
|
+
const r = Math.cos(5 * phase);
|
|
1481
1484
|
return {
|
|
1482
|
-
x: r * Math.cos(
|
|
1483
|
-
y: r * Math.sin(
|
|
1485
|
+
x: r * Math.cos(phase),
|
|
1486
|
+
y: r * Math.sin(phase),
|
|
1484
1487
|
};
|
|
1485
1488
|
}
|
|
1486
1489
|
var rose5 = {
|
|
@@ -1492,11 +1495,11 @@ var rose5 = {
|
|
|
1492
1495
|
|
|
1493
1496
|
// src/curves/rose52.ts
|
|
1494
1497
|
var FOUR_PI = Math.PI * 4;
|
|
1495
|
-
function rose52Fn(
|
|
1496
|
-
const r = Math.cos((5 / 2) *
|
|
1498
|
+
function rose52Fn(phase, _elapsed, _params) {
|
|
1499
|
+
const r = Math.cos((5 / 2) * phase);
|
|
1497
1500
|
return {
|
|
1498
|
-
x: r * Math.cos(
|
|
1499
|
-
y: r * Math.sin(
|
|
1501
|
+
x: r * Math.cos(phase),
|
|
1502
|
+
y: r * Math.sin(phase),
|
|
1500
1503
|
};
|
|
1501
1504
|
}
|
|
1502
1505
|
var rose52 = {
|
|
@@ -1508,14 +1511,14 @@ var rose52 = {
|
|
|
1508
1511
|
|
|
1509
1512
|
// src/curves/star.ts
|
|
1510
1513
|
var TWO_PI11 = Math.PI * 2;
|
|
1511
|
-
function starFn(
|
|
1514
|
+
function starFn(phase, _elapsed, _params) {
|
|
1512
1515
|
const r =
|
|
1513
|
-
Math.abs(Math.cos((5 / 2) *
|
|
1514
|
-
0.35 * Math.abs(Math.cos((15 / 2) *
|
|
1515
|
-
0.15 * Math.abs(Math.cos((25 / 2) *
|
|
1516
|
+
Math.abs(Math.cos((5 / 2) * phase)) +
|
|
1517
|
+
0.35 * Math.abs(Math.cos((15 / 2) * phase)) +
|
|
1518
|
+
0.15 * Math.abs(Math.cos((25 / 2) * phase));
|
|
1516
1519
|
return {
|
|
1517
|
-
x: r * Math.cos(
|
|
1518
|
-
y: r * Math.sin(
|
|
1520
|
+
x: r * Math.cos(phase),
|
|
1521
|
+
y: r * Math.sin(phase),
|
|
1519
1522
|
};
|
|
1520
1523
|
}
|
|
1521
1524
|
var star = {
|
|
@@ -1527,14 +1530,14 @@ var star = {
|
|
|
1527
1530
|
|
|
1528
1531
|
// src/curves/star4.ts
|
|
1529
1532
|
var TWO_PI12 = Math.PI * 2;
|
|
1530
|
-
function star4Fn(
|
|
1533
|
+
function star4Fn(phase, _elapsed, _params) {
|
|
1531
1534
|
const r =
|
|
1532
|
-
Math.abs(Math.cos(2 *
|
|
1533
|
-
0.35 * Math.abs(Math.cos(6 *
|
|
1534
|
-
0.15 * Math.abs(Math.cos(10 *
|
|
1535
|
+
Math.abs(Math.cos(2 * phase)) +
|
|
1536
|
+
0.35 * Math.abs(Math.cos(6 * phase)) +
|
|
1537
|
+
0.15 * Math.abs(Math.cos(10 * phase));
|
|
1535
1538
|
return {
|
|
1536
|
-
x: r * Math.cos(
|
|
1537
|
-
y: r * Math.sin(
|
|
1539
|
+
x: r * Math.cos(phase),
|
|
1540
|
+
y: r * Math.sin(phase),
|
|
1538
1541
|
};
|
|
1539
1542
|
}
|
|
1540
1543
|
var star4 = {
|
|
@@ -1546,14 +1549,14 @@ var star4 = {
|
|
|
1546
1549
|
|
|
1547
1550
|
// src/curves/star7.ts
|
|
1548
1551
|
var TWO_PI13 = Math.PI * 2;
|
|
1549
|
-
function star7Fn(
|
|
1552
|
+
function star7Fn(phase, _elapsed, _params) {
|
|
1550
1553
|
const r =
|
|
1551
|
-
Math.abs(Math.cos((7 / 2) *
|
|
1552
|
-
0.35 * Math.abs(Math.cos((21 / 2) *
|
|
1553
|
-
0.15 * Math.abs(Math.cos((35 / 2) *
|
|
1554
|
+
Math.abs(Math.cos((7 / 2) * phase)) +
|
|
1555
|
+
0.35 * Math.abs(Math.cos((21 / 2) * phase)) +
|
|
1556
|
+
0.15 * Math.abs(Math.cos((35 / 2) * phase));
|
|
1554
1557
|
return {
|
|
1555
|
-
x: r * Math.cos(
|
|
1556
|
-
y: r * Math.sin(
|
|
1558
|
+
x: r * Math.cos(phase),
|
|
1559
|
+
y: r * Math.sin(phase),
|
|
1557
1560
|
};
|
|
1558
1561
|
}
|
|
1559
1562
|
var star7 = {
|