@sarmal/core 0.8.0 → 0.9.1
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 +209 -103
- package/dist/auto-init.cjs.map +1 -1
- package/dist/auto-init.d.cts +1 -0
- package/dist/auto-init.d.ts +1 -0
- package/dist/auto-init.js +209 -103
- package/dist/auto-init.js.map +1 -1
- package/dist/curves/artemis2.cjs +26 -0
- package/dist/curves/artemis2.cjs.map +1 -0
- package/dist/curves/artemis2.d.cts +9 -0
- package/dist/curves/artemis2.d.ts +9 -0
- package/dist/curves/artemis2.js +24 -0
- package/dist/curves/artemis2.js.map +1 -0
- package/dist/curves/astroid.cjs +22 -0
- package/dist/curves/astroid.cjs.map +1 -0
- package/dist/curves/astroid.d.cts +9 -0
- package/dist/curves/astroid.d.ts +9 -0
- package/dist/curves/astroid.js +20 -0
- package/dist/curves/astroid.js.map +1 -0
- package/dist/curves/deltoid.cjs +20 -0
- package/dist/curves/deltoid.cjs.map +1 -0
- package/dist/curves/deltoid.d.cts +9 -0
- package/dist/curves/deltoid.d.ts +9 -0
- package/dist/curves/deltoid.js +18 -0
- package/dist/curves/deltoid.js.map +1 -0
- package/dist/curves/epicycloid3.cjs +20 -0
- package/dist/curves/epicycloid3.cjs.map +1 -0
- package/dist/curves/epicycloid3.d.cts +9 -0
- package/dist/curves/epicycloid3.d.ts +9 -0
- package/dist/curves/epicycloid3.js +18 -0
- package/dist/curves/epicycloid3.js.map +1 -0
- package/dist/curves/epitrochoid7.cjs +29 -0
- package/dist/curves/epitrochoid7.cjs.map +1 -0
- package/dist/curves/epitrochoid7.d.cts +9 -0
- package/dist/curves/epitrochoid7.d.ts +9 -0
- package/dist/curves/epitrochoid7.js +27 -0
- package/dist/curves/epitrochoid7.js.map +1 -0
- package/dist/curves/index.cjs +206 -0
- package/dist/curves/index.cjs.map +1 -0
- package/dist/curves/index.d.cts +19 -0
- package/dist/curves/index.d.ts +19 -0
- package/dist/curves/index.js +206 -0
- package/dist/curves/index.js.map +1 -0
- package/dist/curves/lame.cjs +24 -0
- package/dist/curves/lame.cjs.map +1 -0
- package/dist/curves/lame.d.cts +9 -0
- package/dist/curves/lame.d.ts +9 -0
- package/dist/curves/lame.js +22 -0
- package/dist/curves/lame.js.map +1 -0
- package/dist/curves/lissajous32.cjs +22 -0
- package/dist/curves/lissajous32.cjs.map +1 -0
- package/dist/curves/lissajous32.d.cts +9 -0
- package/dist/curves/lissajous32.d.ts +9 -0
- package/dist/curves/lissajous32.js +20 -0
- package/dist/curves/lissajous32.js.map +1 -0
- package/dist/curves/lissajous43.cjs +22 -0
- package/dist/curves/lissajous43.cjs.map +1 -0
- package/dist/curves/lissajous43.d.cts +9 -0
- package/dist/curves/lissajous43.d.ts +9 -0
- package/dist/curves/lissajous43.js +20 -0
- package/dist/curves/lissajous43.js.map +1 -0
- package/dist/curves/rose3.cjs +21 -0
- package/dist/curves/rose3.cjs.map +1 -0
- package/dist/curves/rose3.d.cts +9 -0
- package/dist/curves/rose3.d.ts +9 -0
- package/dist/curves/rose3.js +19 -0
- package/dist/curves/rose3.js.map +1 -0
- package/dist/curves/rose5.cjs +21 -0
- package/dist/curves/rose5.cjs.map +1 -0
- package/dist/curves/rose5.d.cts +9 -0
- package/dist/curves/rose5.d.ts +9 -0
- package/dist/curves/rose5.js +19 -0
- package/dist/curves/rose5.js.map +1 -0
- package/dist/index.cjs +214 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +105 -0
- package/dist/index.d.ts +105 -0
- package/dist/index.js +222 -107
- package/dist/index.js.map +1 -1
- package/dist/types-DX8VfIVK.d.cts +226 -0
- package/dist/types-DX8VfIVK.d.ts +226 -0
- package/package.json +11 -1
package/dist/index.cjs
CHANGED
|
@@ -201,6 +201,47 @@ var TRAIL_FADE_CURVE = 1.5;
|
|
|
201
201
|
var TRAIL_MAX_OPACITY = 0.88;
|
|
202
202
|
var TRAIL_MIN_WIDTH = 0.5;
|
|
203
203
|
var TRAIL_MAX_WIDTH = 2.5;
|
|
204
|
+
var GRADIENT = {
|
|
205
|
+
bard: ["#a855f7", "#3b82f6", "#14b8a6", "#ec4899"],
|
|
206
|
+
sunset: ["#f97316", "#dc2626", "#9333ea", "#f472b6"],
|
|
207
|
+
ocean: ["#1e3a8a", "#06b6d4", "#22d3ee", "#e0f2fe"],
|
|
208
|
+
ice: ["#1e3a8a", "#67e8f9"],
|
|
209
|
+
fire: ["#7f1d1d", "#fbbf24"],
|
|
210
|
+
forest: ["#14532d", "#86efac"],
|
|
211
|
+
};
|
|
212
|
+
var PRESETS = {
|
|
213
|
+
bard: GRADIENT.bard,
|
|
214
|
+
sunset: GRADIENT.sunset,
|
|
215
|
+
ocean: GRADIENT.ocean,
|
|
216
|
+
ice: GRADIENT.ice,
|
|
217
|
+
fire: GRADIENT.fire,
|
|
218
|
+
forest: GRADIENT.forest,
|
|
219
|
+
};
|
|
220
|
+
function hexToRgb(hex) {
|
|
221
|
+
const n = parseInt(hex.slice(1), 16);
|
|
222
|
+
return { r: n >> 16, g: (n >> 8) & 255, b: n & 255 };
|
|
223
|
+
}
|
|
224
|
+
var lerpRgb = (a, b, t) => ({
|
|
225
|
+
r: Math.round(a.r + (b.r - a.r) * t),
|
|
226
|
+
g: Math.round(a.g + (b.g - a.g) * t),
|
|
227
|
+
b: Math.round(a.b + (b.b - a.b) * t),
|
|
228
|
+
});
|
|
229
|
+
function getPaletteColor(palette, position, timeOffset = 0) {
|
|
230
|
+
if (palette.length === 0) return { r: 255, g: 255, b: 255 };
|
|
231
|
+
if (palette.length === 1) return hexToRgb(palette[0]);
|
|
232
|
+
const cyclePos = (position + timeOffset) % 1;
|
|
233
|
+
const scaled = cyclePos * palette.length;
|
|
234
|
+
const idx = Math.floor(scaled);
|
|
235
|
+
const t = scaled - idx;
|
|
236
|
+
const c1 = hexToRgb(palette[idx % palette.length]);
|
|
237
|
+
const c2 = hexToRgb(palette[(idx + 1) % palette.length]);
|
|
238
|
+
return lerpRgb(c1, c2, t);
|
|
239
|
+
}
|
|
240
|
+
function resolvePalette(palette, trailStyle) {
|
|
241
|
+
if (Array.isArray(palette)) return palette;
|
|
242
|
+
if (palette && palette in PRESETS) return PRESETS[palette];
|
|
243
|
+
return trailStyle === "gradient-animated" ? GRADIENT.bard : GRADIENT.ice;
|
|
244
|
+
}
|
|
204
245
|
function hexToRgbComponents(hex) {
|
|
205
246
|
const n = parseInt(hex.slice(1), 16);
|
|
206
247
|
return `${n >> 16},${(n >> 8) & 255},${n & 255}`;
|
|
@@ -250,6 +291,8 @@ function createRenderer(options) {
|
|
|
250
291
|
headColor: options.headColor ?? "#ffffff",
|
|
251
292
|
headRadius: options.headRadius ?? DEFAULT_HEAD_RADIUS,
|
|
252
293
|
};
|
|
294
|
+
const trailStyle = options.trailStyle ?? "default";
|
|
295
|
+
const palette = resolvePalette(options.palette, trailStyle);
|
|
253
296
|
const trailRgb = hexToRgbComponents(opts.trailColor);
|
|
254
297
|
const dpr = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
|
|
255
298
|
function setupCanvas() {
|
|
@@ -275,6 +318,7 @@ function createRenderer(options) {
|
|
|
275
318
|
let morphResolve = null;
|
|
276
319
|
let morphDurationMs = DEFAULT_MORPH_DURATION_MS;
|
|
277
320
|
let morphAlpha = 0;
|
|
321
|
+
let gradientAnimTime = 0;
|
|
278
322
|
function computeBoundaries(pts) {
|
|
279
323
|
if (pts.length === 0) return null;
|
|
280
324
|
const first = pts[0];
|
|
@@ -386,7 +430,13 @@ function createRenderer(options) {
|
|
|
386
430
|
const l1y = next.y * scale + offsetY + n1.y * halfW1;
|
|
387
431
|
const r1x = next.x * scale + offsetX - n1.x * halfW1;
|
|
388
432
|
const r1y = next.y * scale + offsetY - n1.y * halfW1;
|
|
389
|
-
|
|
433
|
+
if (trailStyle === "default") {
|
|
434
|
+
ctx.fillStyle = `rgba(${trailRgb},${alpha})`;
|
|
435
|
+
} else {
|
|
436
|
+
const timeOffset = trailStyle === "gradient-animated" ? gradientAnimTime * 5e-4 : 0;
|
|
437
|
+
const color = getPaletteColor(palette, progress, timeOffset);
|
|
438
|
+
ctx.fillStyle = `rgba(${color.r},${color.g},${color.b},${alpha})`;
|
|
439
|
+
}
|
|
390
440
|
ctx.beginPath();
|
|
391
441
|
ctx.moveTo(l0x, l0y);
|
|
392
442
|
ctx.lineTo(l1x, l1y);
|
|
@@ -411,6 +461,9 @@ function createRenderer(options) {
|
|
|
411
461
|
const now = performance.now();
|
|
412
462
|
const deltaTime = Math.min((now - lastTime) / 1e3, 1 / 30);
|
|
413
463
|
lastTime = now;
|
|
464
|
+
if (trailStyle === "gradient-animated") {
|
|
465
|
+
gradientAnimTime += deltaTime * 1e3;
|
|
466
|
+
}
|
|
414
467
|
if (engine.morphAlpha !== null) {
|
|
415
468
|
morphAlpha = Math.min(1, morphAlpha + deltaTime / (morphDurationMs / 1e3));
|
|
416
469
|
engine.setMorphAlpha(morphAlpha);
|
|
@@ -599,19 +652,25 @@ function createSVGRenderer(options) {
|
|
|
599
652
|
offsetY = (height - h * scale) / 2 - minY * scale;
|
|
600
653
|
}
|
|
601
654
|
function px(p) {
|
|
602
|
-
return
|
|
655
|
+
return p.x * scale + offsetX;
|
|
603
656
|
}
|
|
604
657
|
function py(p) {
|
|
605
|
-
return
|
|
658
|
+
return p.y * scale + offsetY;
|
|
659
|
+
}
|
|
660
|
+
function pxStr(p) {
|
|
661
|
+
return px(p).toFixed(2);
|
|
662
|
+
}
|
|
663
|
+
function pyStr(p) {
|
|
664
|
+
return py(p).toFixed(2);
|
|
606
665
|
}
|
|
607
666
|
function updateSkeleton(skeleton2) {
|
|
608
667
|
if (skeleton2.length < 2) {
|
|
609
668
|
skeletonPath.setAttribute("d", "");
|
|
610
669
|
return;
|
|
611
670
|
}
|
|
612
|
-
let d = `M${
|
|
671
|
+
let d = `M${pxStr(skeleton2[0])} ${pyStr(skeleton2[0])}`;
|
|
613
672
|
for (let i = 1; i < skeleton2.length; i++) {
|
|
614
|
-
d += ` L${
|
|
673
|
+
d += ` L${pxStr(skeleton2[i])} ${pyStr(skeleton2[i])}`;
|
|
615
674
|
}
|
|
616
675
|
d += " Z";
|
|
617
676
|
skeletonPath.setAttribute("d", d);
|
|
@@ -663,8 +722,8 @@ function createSVGRenderer(options) {
|
|
|
663
722
|
const head = trail[trailCount - 1];
|
|
664
723
|
const x = px(head);
|
|
665
724
|
const y = py(head);
|
|
666
|
-
headCircle.setAttribute("cx", x);
|
|
667
|
-
headCircle.setAttribute("cy", y);
|
|
725
|
+
headCircle.setAttribute("cx", String(x));
|
|
726
|
+
headCircle.setAttribute("cy", String(y));
|
|
668
727
|
}
|
|
669
728
|
let animationId = null;
|
|
670
729
|
let lastTime = 0;
|
|
@@ -817,9 +876,9 @@ function createSarmalSVG(container, curveDef, options) {
|
|
|
817
876
|
return createSVGRenderer({ container, engine, ...rendererOpts });
|
|
818
877
|
}
|
|
819
878
|
|
|
820
|
-
// src/curves.ts
|
|
879
|
+
// src/curves/artemis2.ts
|
|
821
880
|
var TWO_PI2 = Math.PI * 2;
|
|
822
|
-
function
|
|
881
|
+
function artemis2Fn(t, _time, _params) {
|
|
823
882
|
const a = 0.35,
|
|
824
883
|
b = 0.15,
|
|
825
884
|
ox = 0.175;
|
|
@@ -831,21 +890,16 @@ function artemis2(t, _time, _params) {
|
|
|
831
890
|
y: (s * c * (1 + b * c)) / denom,
|
|
832
891
|
};
|
|
833
892
|
}
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
845
|
-
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
846
|
-
};
|
|
847
|
-
}
|
|
848
|
-
function astroid(t, _time, _params) {
|
|
893
|
+
var artemis2 = {
|
|
894
|
+
name: "Artemis II",
|
|
895
|
+
fn: artemis2Fn,
|
|
896
|
+
period: TWO_PI2,
|
|
897
|
+
speed: 0.7,
|
|
898
|
+
};
|
|
899
|
+
|
|
900
|
+
// src/curves/astroid.ts
|
|
901
|
+
var TWO_PI3 = Math.PI * 2;
|
|
902
|
+
function astroidFn(t, _time, _params) {
|
|
849
903
|
const c = Math.cos(t);
|
|
850
904
|
const s = Math.sin(t);
|
|
851
905
|
return {
|
|
@@ -853,47 +907,104 @@ function astroid(t, _time, _params) {
|
|
|
853
907
|
y: s * s * s,
|
|
854
908
|
};
|
|
855
909
|
}
|
|
856
|
-
|
|
910
|
+
var astroid = {
|
|
911
|
+
name: "Astroid",
|
|
912
|
+
fn: astroidFn,
|
|
913
|
+
period: TWO_PI3,
|
|
914
|
+
speed: 1.1,
|
|
915
|
+
};
|
|
916
|
+
|
|
917
|
+
// src/curves/deltoid.ts
|
|
918
|
+
var TWO_PI4 = Math.PI * 2;
|
|
919
|
+
function deltoidFn(t, _time, _params) {
|
|
857
920
|
return {
|
|
858
921
|
x: 2 * Math.cos(t) + Math.cos(2 * t),
|
|
859
922
|
y: 2 * Math.sin(t) - Math.sin(2 * t),
|
|
860
923
|
};
|
|
861
924
|
}
|
|
862
|
-
|
|
863
|
-
|
|
925
|
+
var deltoid = {
|
|
926
|
+
name: "Deltoid",
|
|
927
|
+
fn: deltoidFn,
|
|
928
|
+
period: TWO_PI4,
|
|
929
|
+
speed: 0.9,
|
|
930
|
+
};
|
|
931
|
+
|
|
932
|
+
// src/curves/epicycloid3.ts
|
|
933
|
+
var TWO_PI5 = Math.PI * 2;
|
|
934
|
+
function epicycloid3Fn(t, _time, _params) {
|
|
864
935
|
return {
|
|
865
|
-
x:
|
|
866
|
-
y:
|
|
936
|
+
x: 4 * Math.cos(t) - Math.cos(4 * t),
|
|
937
|
+
y: 4 * Math.sin(t) - Math.sin(4 * t),
|
|
867
938
|
};
|
|
868
939
|
}
|
|
869
|
-
|
|
870
|
-
|
|
940
|
+
var epicycloid3 = {
|
|
941
|
+
name: "Epicycloid (n=3)",
|
|
942
|
+
fn: epicycloid3Fn,
|
|
943
|
+
period: TWO_PI5,
|
|
944
|
+
speed: 0.75,
|
|
945
|
+
};
|
|
946
|
+
|
|
947
|
+
// src/curves/epitrochoid7.ts
|
|
948
|
+
var TWO_PI6 = Math.PI * 2;
|
|
949
|
+
function epitrochoid7Fn(t, _time, _params) {
|
|
950
|
+
const d = 1 + 0.55 * Math.sin(t * 0.5);
|
|
871
951
|
return {
|
|
872
|
-
x:
|
|
873
|
-
y:
|
|
952
|
+
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
953
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
954
|
+
};
|
|
955
|
+
}
|
|
956
|
+
function epitrochoid7SkeletonFn(t) {
|
|
957
|
+
const d = 1.275;
|
|
958
|
+
return {
|
|
959
|
+
x: 7 * Math.cos(t) - d * Math.cos(7 * t),
|
|
960
|
+
y: 7 * Math.sin(t) - d * Math.sin(7 * t),
|
|
874
961
|
};
|
|
875
962
|
}
|
|
876
|
-
|
|
963
|
+
var epitrochoid7 = {
|
|
964
|
+
name: "Epitrochoid",
|
|
965
|
+
fn: epitrochoid7Fn,
|
|
966
|
+
period: TWO_PI6,
|
|
967
|
+
speed: 1.4,
|
|
968
|
+
skeletonFn: epitrochoid7SkeletonFn,
|
|
969
|
+
};
|
|
970
|
+
|
|
971
|
+
// src/curves/lissajous32.ts
|
|
972
|
+
var TWO_PI7 = Math.PI * 2;
|
|
973
|
+
function lissajous32Fn(t, time, _params) {
|
|
877
974
|
const phi = time * 0.45;
|
|
878
975
|
return {
|
|
879
976
|
x: Math.sin(3 * t + phi),
|
|
880
977
|
y: Math.sin(2 * t),
|
|
881
978
|
};
|
|
882
979
|
}
|
|
883
|
-
|
|
980
|
+
var lissajous32 = {
|
|
981
|
+
name: "Lissajous 3:2",
|
|
982
|
+
fn: lissajous32Fn,
|
|
983
|
+
period: TWO_PI7,
|
|
984
|
+
speed: 2,
|
|
985
|
+
skeleton: "live",
|
|
986
|
+
};
|
|
987
|
+
|
|
988
|
+
// src/curves/lissajous43.ts
|
|
989
|
+
var TWO_PI8 = Math.PI * 2;
|
|
990
|
+
function lissajous43Fn(t, time, _params) {
|
|
884
991
|
const phi = time * 0.38;
|
|
885
992
|
return {
|
|
886
993
|
x: Math.sin(4 * t + phi),
|
|
887
994
|
y: Math.sin(3 * t),
|
|
888
995
|
};
|
|
889
996
|
}
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
997
|
+
var lissajous43 = {
|
|
998
|
+
name: "Lissajous 4:3",
|
|
999
|
+
fn: lissajous43Fn,
|
|
1000
|
+
period: TWO_PI8,
|
|
1001
|
+
speed: 1.8,
|
|
1002
|
+
skeleton: "live",
|
|
1003
|
+
};
|
|
1004
|
+
|
|
1005
|
+
// src/curves/lame.ts
|
|
1006
|
+
var TWO_PI9 = Math.PI * 2;
|
|
1007
|
+
function lameFn(t, time, _params) {
|
|
897
1008
|
const p = 1.75 + 1.25 * Math.sin(time * 0.48);
|
|
898
1009
|
const c = Math.cos(t),
|
|
899
1010
|
s = Math.sin(t);
|
|
@@ -902,71 +1013,58 @@ function lame(t, time, _params) {
|
|
|
902
1013
|
y: Math.sign(s) * Math.pow(Math.abs(s), p),
|
|
903
1014
|
};
|
|
904
1015
|
}
|
|
1016
|
+
var lame = {
|
|
1017
|
+
name: "Lam\xE9 Curve",
|
|
1018
|
+
fn: lameFn,
|
|
1019
|
+
period: TWO_PI9,
|
|
1020
|
+
speed: 1,
|
|
1021
|
+
skeleton: "live",
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
// src/curves/rose3.ts
|
|
1025
|
+
var TWO_PI10 = Math.PI * 2;
|
|
1026
|
+
function rose3Fn(t, _time, _params) {
|
|
1027
|
+
const r = Math.cos(3 * t);
|
|
1028
|
+
return {
|
|
1029
|
+
x: r * Math.cos(t),
|
|
1030
|
+
y: r * Math.sin(t),
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
var rose3 = {
|
|
1034
|
+
name: "Rose (n=3)",
|
|
1035
|
+
fn: rose3Fn,
|
|
1036
|
+
period: TWO_PI10,
|
|
1037
|
+
speed: 1.15,
|
|
1038
|
+
};
|
|
1039
|
+
|
|
1040
|
+
// src/curves/rose5.ts
|
|
1041
|
+
var TWO_PI11 = Math.PI * 2;
|
|
1042
|
+
function rose5Fn(t, _time, _params) {
|
|
1043
|
+
const r = Math.cos(5 * t);
|
|
1044
|
+
return {
|
|
1045
|
+
x: r * Math.cos(t),
|
|
1046
|
+
y: r * Math.sin(t),
|
|
1047
|
+
};
|
|
1048
|
+
}
|
|
1049
|
+
var rose5 = {
|
|
1050
|
+
name: "Rose (n=5)",
|
|
1051
|
+
fn: rose5Fn,
|
|
1052
|
+
period: TWO_PI11,
|
|
1053
|
+
speed: 1,
|
|
1054
|
+
};
|
|
1055
|
+
|
|
1056
|
+
// src/curves/index.ts
|
|
905
1057
|
var curves = {
|
|
906
|
-
artemis2
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
speed: 1.4,
|
|
917
|
-
skeletonFn: epitrochoid7Skeleton,
|
|
918
|
-
},
|
|
919
|
-
astroid: {
|
|
920
|
-
name: "Astroid",
|
|
921
|
-
fn: astroid,
|
|
922
|
-
period: TWO_PI2,
|
|
923
|
-
speed: 1.1,
|
|
924
|
-
},
|
|
925
|
-
deltoid: {
|
|
926
|
-
name: "Deltoid",
|
|
927
|
-
fn: deltoid,
|
|
928
|
-
period: TWO_PI2,
|
|
929
|
-
speed: 0.9,
|
|
930
|
-
},
|
|
931
|
-
rose5: {
|
|
932
|
-
name: "Rose (n=5)",
|
|
933
|
-
fn: rose5,
|
|
934
|
-
period: TWO_PI2,
|
|
935
|
-
speed: 1,
|
|
936
|
-
},
|
|
937
|
-
rose3: {
|
|
938
|
-
name: "Rose (n=3)",
|
|
939
|
-
fn: rose3,
|
|
940
|
-
period: TWO_PI2,
|
|
941
|
-
speed: 1.15,
|
|
942
|
-
},
|
|
943
|
-
lissajous32: {
|
|
944
|
-
name: "Lissajous 3:2",
|
|
945
|
-
fn: lissajous32,
|
|
946
|
-
period: TWO_PI2,
|
|
947
|
-
speed: 2,
|
|
948
|
-
skeleton: "live",
|
|
949
|
-
},
|
|
950
|
-
lissajous43: {
|
|
951
|
-
name: "Lissajous 4:3",
|
|
952
|
-
fn: lissajous43,
|
|
953
|
-
period: TWO_PI2,
|
|
954
|
-
speed: 1.8,
|
|
955
|
-
skeleton: "live",
|
|
956
|
-
},
|
|
957
|
-
epicycloid3: {
|
|
958
|
-
name: "Epicycloid (n=3)",
|
|
959
|
-
fn: epicycloid3,
|
|
960
|
-
period: TWO_PI2,
|
|
961
|
-
speed: 0.75,
|
|
962
|
-
},
|
|
963
|
-
lame: {
|
|
964
|
-
name: "Lam\xE9 Curve",
|
|
965
|
-
fn: lame,
|
|
966
|
-
period: TWO_PI2,
|
|
967
|
-
speed: 1,
|
|
968
|
-
skeleton: "live",
|
|
969
|
-
},
|
|
1058
|
+
artemis2,
|
|
1059
|
+
epitrochoid7,
|
|
1060
|
+
astroid,
|
|
1061
|
+
deltoid,
|
|
1062
|
+
rose5,
|
|
1063
|
+
rose3,
|
|
1064
|
+
lissajous32,
|
|
1065
|
+
lissajous43,
|
|
1066
|
+
epicycloid3,
|
|
1067
|
+
lame,
|
|
970
1068
|
};
|
|
971
1069
|
|
|
972
1070
|
// src/index.ts
|
|
@@ -976,11 +1074,21 @@ function createSarmal(canvas, curveDef, options) {
|
|
|
976
1074
|
return createRenderer({ canvas, engine, ...rendererOpts });
|
|
977
1075
|
}
|
|
978
1076
|
|
|
1077
|
+
exports.artemis2 = artemis2;
|
|
1078
|
+
exports.astroid = astroid;
|
|
979
1079
|
exports.createEngine = createEngine;
|
|
980
1080
|
exports.createRenderer = createRenderer;
|
|
981
1081
|
exports.createSVGRenderer = createSVGRenderer;
|
|
982
1082
|
exports.createSarmal = createSarmal;
|
|
983
1083
|
exports.createSarmalSVG = createSarmalSVG;
|
|
984
1084
|
exports.curves = curves;
|
|
1085
|
+
exports.deltoid = deltoid;
|
|
1086
|
+
exports.epicycloid3 = epicycloid3;
|
|
1087
|
+
exports.epitrochoid7 = epitrochoid7;
|
|
1088
|
+
exports.lame = lame;
|
|
1089
|
+
exports.lissajous32 = lissajous32;
|
|
1090
|
+
exports.lissajous43 = lissajous43;
|
|
1091
|
+
exports.rose3 = rose3;
|
|
1092
|
+
exports.rose5 = rose5;
|
|
985
1093
|
//# sourceMappingURL=index.cjs.map
|
|
986
1094
|
//# sourceMappingURL=index.cjs.map
|