git-hash-art 0.0.3 → 0.0.4
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/.release-it.json +1 -1
- package/CHANGELOG.md +9 -0
- package/dist/main.js +260 -155
- package/dist/main.js.map +1 -1
- package/dist/module.js +259 -154
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -0
- package/global.d.ts +12 -0
- package/package.json +14 -10
- package/src/{index.js → index.ts} +35 -30
- package/src/lib/canvas/{colors.js → colors.ts} +53 -11
- package/src/lib/canvas/{draw.js → draw.ts} +29 -11
- package/src/lib/canvas/shapes/{basic.js → basic.ts} +14 -12
- package/src/lib/canvas/shapes/{complex.js → complex.ts} +116 -34
- package/src/lib/canvas/shapes/{index.js → index.ts} +7 -1
- package/src/lib/canvas/shapes/sacred.ts +206 -0
- package/src/lib/canvas/shapes/utils.ts +65 -0
- package/src/lib/{constants.js → constants.ts} +32 -5
- package/src/lib/{utils.js → utils.ts} +34 -6
- package/tsconfig.json +16 -0
- package/eslint.config.mjs +0 -29
- package/src/lib/canvas/shapes/sacred.js +0 -173
- package/src/lib/canvas/shapes/utils.js +0 -37
package/dist/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var $
|
|
2
|
-
var $
|
|
3
|
-
var $
|
|
4
|
-
var $
|
|
1
|
+
var $8zHUo$canvas = require("canvas");
|
|
2
|
+
var $8zHUo$fs = require("fs");
|
|
3
|
+
var $8zHUo$path = require("path");
|
|
4
|
+
var $8zHUo$colorscheme = require("color-scheme");
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
function $parcel$interopDefault(a) {
|
|
@@ -12,28 +12,31 @@ function $parcel$export(e, n, v, s) {
|
|
|
12
12
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
$parcel$export(module.exports, "generateImageFromHash", () => $
|
|
16
|
-
$parcel$export(module.exports, "saveImageToFile", () => $
|
|
15
|
+
$parcel$export(module.exports, "generateImageFromHash", () => $882b6d93070905b3$export$491525bf12232411);
|
|
16
|
+
$parcel$export(module.exports, "saveImageToFile", () => $882b6d93070905b3$export$ea0bbc160a51089a);
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
// declare module 'color-scheme';
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const $2fcb7065aeebeb29$export$8daab6f91f7ff730 = (ctx, size)=>{
|
|
22
25
|
ctx.beginPath();
|
|
23
26
|
ctx.arc(0, 0, size / 2, 0, Math.PI * 2);
|
|
24
27
|
};
|
|
25
|
-
const $
|
|
28
|
+
const $2fcb7065aeebeb29$export$9340b6a85ea854b9 = (ctx, size)=>{
|
|
26
29
|
ctx.beginPath();
|
|
27
30
|
ctx.rect(-size / 2, -size / 2, size, size);
|
|
28
31
|
};
|
|
29
|
-
const $
|
|
32
|
+
const $2fcb7065aeebeb29$export$e6b70c7883316010 = (ctx, size)=>{
|
|
30
33
|
ctx.beginPath();
|
|
31
34
|
ctx.moveTo(0, -size / 2);
|
|
32
35
|
ctx.lineTo(-size / 2, size / 2);
|
|
33
36
|
ctx.lineTo(size / 2, size / 2);
|
|
34
37
|
ctx.closePath();
|
|
35
38
|
};
|
|
36
|
-
const $
|
|
39
|
+
const $2fcb7065aeebeb29$export$252d2895fb67397b = (ctx, size)=>{
|
|
37
40
|
ctx.beginPath();
|
|
38
41
|
for(let i = 0; i < 6; i++){
|
|
39
42
|
const angle = Math.PI / 8 * i;
|
|
@@ -44,7 +47,7 @@ const $c771cd4f2f8ecacb$export$252d2895fb67397b = (ctx, size)=>{
|
|
|
44
47
|
}
|
|
45
48
|
ctx.closePath();
|
|
46
49
|
};
|
|
47
|
-
const $
|
|
50
|
+
const $2fcb7065aeebeb29$export$ca57b923902a3c0 = (ctx, size)=>{
|
|
48
51
|
ctx.beginPath();
|
|
49
52
|
for(let i = 0; i < 10; i++){
|
|
50
53
|
const angle = Math.PI / 5 + Math.PI / 5 * i * 3;
|
|
@@ -56,7 +59,7 @@ const $c771cd4f2f8ecacb$export$ca57b923902a3c0 = (ctx, size)=>{
|
|
|
56
59
|
}
|
|
57
60
|
ctx.closePath();
|
|
58
61
|
};
|
|
59
|
-
const $
|
|
62
|
+
const $2fcb7065aeebeb29$export$cf8f2f05ac4f561f = (ctx, size)=>{
|
|
60
63
|
ctx.beginPath();
|
|
61
64
|
for(let i = 0; i < 10; i++){
|
|
62
65
|
const angle = Math.PI / 30 + Math.PI / 30 * i * 8;
|
|
@@ -68,13 +71,13 @@ const $c771cd4f2f8ecacb$export$cf8f2f05ac4f561f = (ctx, size)=>{
|
|
|
68
71
|
}
|
|
69
72
|
ctx.closePath();
|
|
70
73
|
};
|
|
71
|
-
const $
|
|
74
|
+
const $2fcb7065aeebeb29$export$1ed0c0bc398b6246 = (ctx, size)=>{
|
|
72
75
|
ctx.beginPath();
|
|
73
76
|
ctx.moveTo(0, size / 4);
|
|
74
77
|
ctx.quadraticCurveTo(size / 2, size / 4, 0, -size / 4);
|
|
75
78
|
ctx.quadraticCurveTo(-size / 2, size / 4, 0, size / 4);
|
|
76
79
|
};
|
|
77
|
-
const $
|
|
80
|
+
const $2fcb7065aeebeb29$export$57ec12daf141ce6 = (ctx, size)=>{
|
|
78
81
|
ctx.beginPath();
|
|
79
82
|
ctx.moveTo(0, -size / 2);
|
|
80
83
|
ctx.lineTo(size / 2, 0);
|
|
@@ -82,7 +85,7 @@ const $c771cd4f2f8ecacb$export$57ec12daf141ce6 = (ctx, size)=>{
|
|
|
82
85
|
ctx.lineTo(-size / 2, 0);
|
|
83
86
|
ctx.closePath();
|
|
84
87
|
};
|
|
85
|
-
const $
|
|
88
|
+
const $2fcb7065aeebeb29$export$39f25a4fc5491539 = (ctx, size)=>{
|
|
86
89
|
ctx.beginPath();
|
|
87
90
|
ctx.moveTo(-size / 2, -size / 2);
|
|
88
91
|
ctx.lineTo(size / 2, -size / 2);
|
|
@@ -90,20 +93,21 @@ const $c771cd4f2f8ecacb$export$39f25a4fc5491539 = (ctx, size)=>{
|
|
|
90
93
|
ctx.lineTo(-size / 2, size / 2);
|
|
91
94
|
ctx.closePath();
|
|
92
95
|
};
|
|
93
|
-
const $
|
|
94
|
-
circle: $
|
|
95
|
-
square: $
|
|
96
|
-
triangle: $
|
|
97
|
-
hexagon: $
|
|
98
|
-
star: $
|
|
99
|
-
"jacked-star": $
|
|
100
|
-
heart: $
|
|
101
|
-
diamond: $
|
|
102
|
-
cube: $
|
|
96
|
+
const $2fcb7065aeebeb29$export$492753207a5258e1 = {
|
|
97
|
+
circle: $2fcb7065aeebeb29$export$8daab6f91f7ff730,
|
|
98
|
+
square: $2fcb7065aeebeb29$export$9340b6a85ea854b9,
|
|
99
|
+
triangle: $2fcb7065aeebeb29$export$e6b70c7883316010,
|
|
100
|
+
hexagon: $2fcb7065aeebeb29$export$252d2895fb67397b,
|
|
101
|
+
star: $2fcb7065aeebeb29$export$ca57b923902a3c0,
|
|
102
|
+
"jacked-star": $2fcb7065aeebeb29$export$cf8f2f05ac4f561f,
|
|
103
|
+
heart: $2fcb7065aeebeb29$export$1ed0c0bc398b6246,
|
|
104
|
+
diamond: $2fcb7065aeebeb29$export$57ec12daf141ce6,
|
|
105
|
+
cube: $2fcb7065aeebeb29$export$39f25a4fc5491539
|
|
103
106
|
};
|
|
104
107
|
|
|
105
108
|
|
|
106
|
-
|
|
109
|
+
// Define interfaces for our configurations
|
|
110
|
+
const $dce148ef39106e4a$export$9265403940be6b4 = {
|
|
107
111
|
// Standard sizes with different hashes
|
|
108
112
|
react: {
|
|
109
113
|
hash: "46192e59d42f741c761cbea79462a8b3815dd905",
|
|
@@ -193,7 +197,7 @@ const $d53f79a9c1941d01$export$9265403940be6b4 = {
|
|
|
193
197
|
maxShapeSize: 250
|
|
194
198
|
}
|
|
195
199
|
};
|
|
196
|
-
const $
|
|
200
|
+
const $dce148ef39106e4a$export$3572305709b6b48c = {
|
|
197
201
|
strokeStyle: "#000000",
|
|
198
202
|
fillStyle: "transparent",
|
|
199
203
|
lineWidth: 1,
|
|
@@ -201,12 +205,12 @@ const $d53f79a9c1941d01$export$3572305709b6b48c = {
|
|
|
201
205
|
iterations: 1,
|
|
202
206
|
animate: false
|
|
203
207
|
};
|
|
204
|
-
const $
|
|
208
|
+
const $dce148ef39106e4a$export$a4ca1369b6d2c19e = {
|
|
205
209
|
BASIC: "basic",
|
|
206
210
|
DETAILED: "detailed",
|
|
207
211
|
ANIMATED: "animated"
|
|
208
212
|
};
|
|
209
|
-
const $
|
|
213
|
+
const $dce148ef39106e4a$export$bb9e4790bc99ae59 = {
|
|
210
214
|
GOLDEN_RATIO: 1.618034,
|
|
211
215
|
SQUARE_ROOT_2: Math.sqrt(2),
|
|
212
216
|
SQUARE_ROOT_3: Math.sqrt(3),
|
|
@@ -214,7 +218,7 @@ const $d53f79a9c1941d01$export$bb9e4790bc99ae59 = {
|
|
|
214
218
|
PI: Math.PI,
|
|
215
219
|
PHI: (1 + Math.sqrt(5)) / 2
|
|
216
220
|
};
|
|
217
|
-
const $
|
|
221
|
+
const $dce148ef39106e4a$export$c36defeab44ba3b3 = {
|
|
218
222
|
flowerOfLifeMandala: (size)=>[
|
|
219
223
|
// { type: "flowerOfLife", config: { size } },
|
|
220
224
|
{
|
|
@@ -271,25 +275,25 @@ const $d53f79a9c1941d01$export$c36defeab44ba3b3 = {
|
|
|
271
275
|
};
|
|
272
276
|
|
|
273
277
|
|
|
274
|
-
const $
|
|
275
|
-
const $
|
|
278
|
+
const $f015a48f80684faa$export$e6bfdeff8bfc94f9 = (degrees)=>degrees * Math.PI / 180;
|
|
279
|
+
const $f015a48f80684faa$export$e46c5570db033611 = (ctx, size, config)=>{
|
|
276
280
|
ctx.save();
|
|
277
281
|
ctx.translate(0, 0);
|
|
278
|
-
if (config.rotation) ctx.rotate($
|
|
282
|
+
if (config.rotation) ctx.rotate($f015a48f80684faa$export$e6bfdeff8bfc94f9(config.rotation));
|
|
279
283
|
ctx.lineWidth = config.lineWidth;
|
|
280
284
|
ctx.strokeStyle = config.strokeStyle;
|
|
281
285
|
ctx.fillStyle = config.fillStyle;
|
|
282
286
|
};
|
|
283
|
-
const $
|
|
287
|
+
const $f015a48f80684faa$export$68ae68d395d27fd1 = (ctx)=>{
|
|
284
288
|
ctx.restore();
|
|
285
289
|
};
|
|
286
|
-
const $
|
|
290
|
+
const $f015a48f80684faa$export$70ba51ca253810ef = (type)=>({
|
|
287
291
|
enabled: false,
|
|
288
292
|
duration: 1000,
|
|
289
293
|
easing: "linear",
|
|
290
294
|
type: type
|
|
291
295
|
});
|
|
292
|
-
const $
|
|
296
|
+
const $f015a48f80684faa$export$5627764dc1e1d74a = (cx, cy, radius, segments)=>{
|
|
293
297
|
const points = [];
|
|
294
298
|
for(let i = 0; i < segments; i++){
|
|
295
299
|
const angle = i / segments * Math.PI * 2;
|
|
@@ -302,7 +306,7 @@ const $42d2a3c4a2119a18$export$5627764dc1e1d74a = (cx, cy, radius, segments)=>{
|
|
|
302
306
|
};
|
|
303
307
|
|
|
304
308
|
|
|
305
|
-
const $
|
|
309
|
+
const $01645fc0a37fc26d$export$90cc629a1c6121c7 = {
|
|
306
310
|
platonic: {
|
|
307
311
|
tetrahedron: {
|
|
308
312
|
vertices: 4,
|
|
@@ -334,16 +338,16 @@ const $5c4ee523c150698e$export$90cc629a1c6121c7 = {
|
|
|
334
338
|
ratio: 1.618034
|
|
335
339
|
}
|
|
336
340
|
};
|
|
337
|
-
const $
|
|
341
|
+
const $01645fc0a37fc26d$export$4721fcae39954914 = (ctx, size, config = {})=>{
|
|
338
342
|
const finalConfig = {
|
|
339
|
-
...(0, $
|
|
343
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
340
344
|
...config
|
|
341
345
|
};
|
|
342
|
-
(0, $
|
|
343
|
-
const { vertices: vertices } = $
|
|
346
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
347
|
+
const { vertices: vertices } = $01645fc0a37fc26d$export$90cc629a1c6121c7.platonic[config.type];
|
|
344
348
|
const radius = size / 2;
|
|
345
349
|
// Calculate vertices based on platonic solid type
|
|
346
|
-
const points = (0, $
|
|
350
|
+
const points = (0, $f015a48f80684faa$export$5627764dc1e1d74a)(0, 0, radius, vertices);
|
|
347
351
|
ctx.beginPath();
|
|
348
352
|
// Draw edges between vertices
|
|
349
353
|
points.forEach((p1, i)=>{
|
|
@@ -354,15 +358,15 @@ const $5c4ee523c150698e$export$4721fcae39954914 = (ctx, size, type, config = {})
|
|
|
354
358
|
});
|
|
355
359
|
if (finalConfig.fillStyle !== "transparent") ctx.fill();
|
|
356
360
|
ctx.stroke();
|
|
357
|
-
(0, $
|
|
361
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
358
362
|
};
|
|
359
|
-
const $
|
|
363
|
+
const $01645fc0a37fc26d$export$4091fa94ab006097 = (ctx, size, config = {})=>{
|
|
360
364
|
const finalConfig = {
|
|
361
|
-
...(0, $
|
|
362
|
-
...$
|
|
365
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
366
|
+
...$01645fc0a37fc26d$export$90cc629a1c6121c7.fibonacci,
|
|
363
367
|
...config
|
|
364
368
|
};
|
|
365
|
-
(0, $
|
|
369
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
366
370
|
let current = 1;
|
|
367
371
|
let previous = 1;
|
|
368
372
|
let scale = size / Math.pow(finalConfig.growthFactor, finalConfig.iterations);
|
|
@@ -381,14 +385,14 @@ const $5c4ee523c150698e$export$4091fa94ab006097 = (ctx, size, config = {})=>{
|
|
|
381
385
|
ctx.rotate(Math.PI / 2);
|
|
382
386
|
}
|
|
383
387
|
ctx.stroke();
|
|
384
|
-
(0, $
|
|
388
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
385
389
|
};
|
|
386
|
-
const $
|
|
390
|
+
const $01645fc0a37fc26d$export$c9043b89bcb14ed9 = (ctx, size, config = {})=>{
|
|
387
391
|
const finalConfig = {
|
|
388
|
-
...(0, $
|
|
392
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
389
393
|
...config
|
|
390
394
|
};
|
|
391
|
-
(0, $
|
|
395
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
392
396
|
const gridSize = 8;
|
|
393
397
|
const unit = size / gridSize;
|
|
394
398
|
ctx.beginPath();
|
|
@@ -399,24 +403,24 @@ const $5c4ee523c150698e$export$c9043b89bcb14ed9 = (ctx, size, config = {})=>{
|
|
|
399
403
|
// Draw star pattern at each intersection
|
|
400
404
|
const radius = unit / 2;
|
|
401
405
|
for(let k = 0; k < 8; k++){
|
|
402
|
-
const angle =
|
|
403
|
-
const x1 = x + Math.cos(angle)
|
|
404
|
-
const y1 = y + Math.sin(angle)
|
|
405
|
-
|
|
406
|
-
|
|
406
|
+
const angle = Math.PI / 4 * k;
|
|
407
|
+
const x1 = x + radius * Math.cos(angle);
|
|
408
|
+
const y1 = y + radius * Math.sin(angle);
|
|
409
|
+
const x2 = x + radius * Math.cos(angle + Math.PI / 4);
|
|
410
|
+
const y2 = y + radius * Math.sin(angle + Math.PI / 4);
|
|
411
|
+
ctx.moveTo(x1, y1);
|
|
412
|
+
ctx.lineTo(x2, y2);
|
|
407
413
|
}
|
|
408
|
-
ctx.closePath();
|
|
409
414
|
}
|
|
410
|
-
if (finalConfig.fillStyle !== "transparent") ctx.fill();
|
|
411
415
|
ctx.stroke();
|
|
412
|
-
(0, $
|
|
416
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
413
417
|
};
|
|
414
|
-
const $
|
|
418
|
+
const $01645fc0a37fc26d$export$16ea6f9310920305 = (ctx, size, config = {})=>{
|
|
415
419
|
const finalConfig = {
|
|
416
|
-
...(0, $
|
|
420
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
417
421
|
...config
|
|
418
422
|
};
|
|
419
|
-
(0, $
|
|
423
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
420
424
|
const gridSize = 4;
|
|
421
425
|
const unit = size / gridSize;
|
|
422
426
|
const drawKnotSegment = (x, y, type)=>{
|
|
@@ -439,19 +443,19 @@ const $5c4ee523c150698e$export$16ea6f9310920305 = (ctx, size, config = {})=>{
|
|
|
439
443
|
const y = (j - gridSize / 2) * unit;
|
|
440
444
|
drawKnotSegment(x, y, (i + j) % 2 === 0 ? "over" : "under");
|
|
441
445
|
}
|
|
442
|
-
(0, $
|
|
446
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
443
447
|
};
|
|
444
|
-
const $
|
|
448
|
+
const $01645fc0a37fc26d$export$661ad3ddfb8912ed = (ctx, size, config = {})=>{
|
|
445
449
|
const finalConfig = {
|
|
446
|
-
...(0, $
|
|
450
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
447
451
|
...config
|
|
448
452
|
};
|
|
449
|
-
(0, $
|
|
453
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
450
454
|
const radius = size / 2;
|
|
451
455
|
// Draw two intersecting tetrahedra
|
|
452
456
|
ctx.beginPath();
|
|
453
457
|
// First tetrahedron
|
|
454
|
-
const points1 = (0, $
|
|
458
|
+
const points1 = (0, $f015a48f80684faa$export$5627764dc1e1d74a)(0, 0, radius, 3);
|
|
455
459
|
points1.forEach((p1, i)=>{
|
|
456
460
|
points1.slice(i + 1).forEach((p2)=>{
|
|
457
461
|
ctx.moveTo(p1.x, p1.y);
|
|
@@ -460,7 +464,7 @@ const $5c4ee523c150698e$export$661ad3ddfb8912ed = (ctx, size, config = {})=>{
|
|
|
460
464
|
});
|
|
461
465
|
// Second tetrahedron (rotated)
|
|
462
466
|
ctx.rotate(Math.PI / 6);
|
|
463
|
-
const points2 = (0, $
|
|
467
|
+
const points2 = (0, $f015a48f80684faa$export$5627764dc1e1d74a)(0, 0, radius, 3);
|
|
464
468
|
points2.forEach((p1, i)=>{
|
|
465
469
|
points2.slice(i + 1).forEach((p2)=>{
|
|
466
470
|
ctx.moveTo(p1.x, p1.y);
|
|
@@ -469,19 +473,67 @@ const $5c4ee523c150698e$export$661ad3ddfb8912ed = (ctx, size, config = {})=>{
|
|
|
469
473
|
});
|
|
470
474
|
if (finalConfig.fillStyle !== "transparent") ctx.fill();
|
|
471
475
|
ctx.stroke();
|
|
472
|
-
(0, $
|
|
476
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
477
|
+
};
|
|
478
|
+
const $01645fc0a37fc26d$export$97222779ddee1bfe = (ctx, size, config = {})=>{
|
|
479
|
+
const finalConfig = {
|
|
480
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
481
|
+
...config
|
|
482
|
+
};
|
|
483
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
484
|
+
const numCircles = 8;
|
|
485
|
+
const numPoints = 16;
|
|
486
|
+
const radius = size / 2;
|
|
487
|
+
ctx.beginPath();
|
|
488
|
+
for(let i = 1; i <= numCircles; i++){
|
|
489
|
+
const circleRadius = radius / numCircles * i;
|
|
490
|
+
ctx.moveTo(circleRadius, 0);
|
|
491
|
+
ctx.arc(0, 0, circleRadius, 0, Math.PI * 2);
|
|
492
|
+
for(let j = 0; j < numPoints; j++){
|
|
493
|
+
const angle = Math.PI * 2 * j / numPoints;
|
|
494
|
+
const x = circleRadius * Math.cos(angle);
|
|
495
|
+
const y = circleRadius * Math.sin(angle);
|
|
496
|
+
ctx.moveTo(0, 0);
|
|
497
|
+
ctx.lineTo(x, y);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
ctx.stroke();
|
|
501
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
502
|
+
};
|
|
503
|
+
const $01645fc0a37fc26d$export$4fab07e71ae4aeeb = (ctx, size, config = {})=>{
|
|
504
|
+
const finalConfig = {
|
|
505
|
+
...(0, $dce148ef39106e4a$export$3572305709b6b48c),
|
|
506
|
+
...config,
|
|
507
|
+
iterations: 5
|
|
508
|
+
};
|
|
509
|
+
(0, $f015a48f80684faa$export$e46c5570db033611)(ctx, size, finalConfig);
|
|
510
|
+
const drawBranch = (x, y, length, angle, depth)=>{
|
|
511
|
+
if (depth === 0) return;
|
|
512
|
+
const endX = x + length * Math.cos(angle);
|
|
513
|
+
const endY = y + length * Math.sin(angle);
|
|
514
|
+
ctx.beginPath();
|
|
515
|
+
ctx.moveTo(x, y);
|
|
516
|
+
ctx.lineTo(endX, endY);
|
|
517
|
+
ctx.stroke();
|
|
518
|
+
drawBranch(endX, endY, length * 0.7, angle - Math.PI / 6, depth - 1);
|
|
519
|
+
drawBranch(endX, endY, length * 0.7, angle + Math.PI / 6, depth - 1);
|
|
520
|
+
};
|
|
521
|
+
drawBranch(0, size / 2, size / 4, -Math.PI / 2, finalConfig.iterations);
|
|
522
|
+
(0, $f015a48f80684faa$export$68ae68d395d27fd1)(ctx);
|
|
473
523
|
};
|
|
474
|
-
const $
|
|
475
|
-
platonicSolid:
|
|
476
|
-
fibonacciSpiral:
|
|
477
|
-
islamicPattern:
|
|
478
|
-
celticKnot:
|
|
479
|
-
merkaba:
|
|
524
|
+
const $01645fc0a37fc26d$export$dbe318a13ce51887 = {
|
|
525
|
+
platonicSolid: $01645fc0a37fc26d$export$4721fcae39954914,
|
|
526
|
+
fibonacciSpiral: $01645fc0a37fc26d$export$4091fa94ab006097,
|
|
527
|
+
islamicPattern: $01645fc0a37fc26d$export$c9043b89bcb14ed9,
|
|
528
|
+
celticKnot: $01645fc0a37fc26d$export$16ea6f9310920305,
|
|
529
|
+
merkaba: $01645fc0a37fc26d$export$661ad3ddfb8912ed,
|
|
530
|
+
mandala: $01645fc0a37fc26d$export$97222779ddee1bfe,
|
|
531
|
+
fractal: $01645fc0a37fc26d$export$4fab07e71ae4aeeb
|
|
480
532
|
};
|
|
481
533
|
|
|
482
534
|
|
|
483
535
|
|
|
484
|
-
const $
|
|
536
|
+
const $e7551d1f11f7be1e$export$3bac12a72d9de58c = (ctx, size)=>{
|
|
485
537
|
const radius = size / 6;
|
|
486
538
|
const centers = [
|
|
487
539
|
{
|
|
@@ -519,7 +571,7 @@ const $250b0111f88ffe51$export$3bac12a72d9de58c = (ctx, size)=>{
|
|
|
519
571
|
ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);
|
|
520
572
|
});
|
|
521
573
|
};
|
|
522
|
-
const $
|
|
574
|
+
const $e7551d1f11f7be1e$export$639bf214428ceec2 = (ctx, size)=>{
|
|
523
575
|
const radius = size / 12;
|
|
524
576
|
const spacing = radius * 2.5;
|
|
525
577
|
// Sephirot positions (traditional layout)
|
|
@@ -563,7 +615,7 @@ const $250b0111f88ffe51$export$639bf214428ceec2 = (ctx, size)=>{
|
|
|
563
615
|
{
|
|
564
616
|
x: 0,
|
|
565
617
|
y: spacing * 3
|
|
566
|
-
}
|
|
618
|
+
}
|
|
567
619
|
];
|
|
568
620
|
// Draw circles
|
|
569
621
|
ctx.beginPath();
|
|
@@ -580,7 +632,7 @@ const $250b0111f88ffe51$export$639bf214428ceec2 = (ctx, size)=>{
|
|
|
580
632
|
});
|
|
581
633
|
});
|
|
582
634
|
};
|
|
583
|
-
const $
|
|
635
|
+
const $e7551d1f11f7be1e$export$de26673ceb3e04eb = (ctx, size)=>{
|
|
584
636
|
const radius = size / 3;
|
|
585
637
|
// Create 13 points - one center and 12 vertices of an icosahedron
|
|
586
638
|
// const phi = (1 + Math.sqrt(5)) / 2; // Golden ratio
|
|
@@ -589,8 +641,8 @@ const $250b0111f88ffe51$export$de26673ceb3e04eb = (ctx, size)=>{
|
|
|
589
641
|
x: 0,
|
|
590
642
|
y: 0
|
|
591
643
|
},
|
|
592
|
-
...(0, $
|
|
593
|
-
...(0, $
|
|
644
|
+
...(0, $f015a48f80684faa$export$5627764dc1e1d74a)(0, 0, radius, 6),
|
|
645
|
+
...(0, $f015a48f80684faa$export$5627764dc1e1d74a)(0, 0, radius * 1.5, 6)
|
|
594
646
|
];
|
|
595
647
|
ctx.beginPath();
|
|
596
648
|
// Draw all connecting lines
|
|
@@ -601,7 +653,7 @@ const $250b0111f88ffe51$export$de26673ceb3e04eb = (ctx, size)=>{
|
|
|
601
653
|
});
|
|
602
654
|
});
|
|
603
655
|
};
|
|
604
|
-
const $
|
|
656
|
+
const $e7551d1f11f7be1e$export$f743702d1590aefb = (ctx, size)=>{
|
|
605
657
|
const radius = size / 2;
|
|
606
658
|
ctx.beginPath();
|
|
607
659
|
// Draw outer triangles
|
|
@@ -630,14 +682,37 @@ const $250b0111f88ffe51$export$f743702d1590aefb = (ctx, size)=>{
|
|
|
630
682
|
ctx.lineTo(0, 0);
|
|
631
683
|
}
|
|
632
684
|
};
|
|
633
|
-
const $
|
|
634
|
-
const radius = size /
|
|
685
|
+
const $e7551d1f11f7be1e$export$980631444e370ab0 = (ctx, size)=>{
|
|
686
|
+
const radius = size / 6;
|
|
635
687
|
const centers = [
|
|
636
688
|
{
|
|
637
689
|
x: 0,
|
|
638
690
|
y: 0
|
|
639
691
|
},
|
|
640
|
-
|
|
692
|
+
{
|
|
693
|
+
x: radius * Math.sqrt(3),
|
|
694
|
+
y: 0
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
x: radius * Math.sqrt(3) / 2,
|
|
698
|
+
y: 1.5 * radius
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
x: -radius * Math.sqrt(3) / 2,
|
|
702
|
+
y: 1.5 * radius
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
x: -radius * Math.sqrt(3),
|
|
706
|
+
y: 0
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
x: -radius * Math.sqrt(3) / 2,
|
|
710
|
+
y: -1.5 * radius
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
x: radius * Math.sqrt(3) / 2,
|
|
714
|
+
y: -1.5 * radius
|
|
715
|
+
}
|
|
641
716
|
];
|
|
642
717
|
ctx.beginPath();
|
|
643
718
|
centers.forEach((center)=>{
|
|
@@ -645,14 +720,13 @@ const $250b0111f88ffe51$export$980631444e370ab0 = (ctx, size)=>{
|
|
|
645
720
|
ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);
|
|
646
721
|
});
|
|
647
722
|
};
|
|
648
|
-
const $
|
|
649
|
-
const radius = size /
|
|
723
|
+
const $e7551d1f11f7be1e$export$eeae7765f05012e2 = (ctx, size)=>{
|
|
724
|
+
const radius = size / 4;
|
|
650
725
|
ctx.beginPath();
|
|
651
|
-
// Draw two overlapping circles
|
|
652
726
|
ctx.arc(-radius / 2, 0, radius, 0, Math.PI * 2);
|
|
653
727
|
ctx.arc(radius / 2, 0, radius, 0, Math.PI * 2);
|
|
654
728
|
};
|
|
655
|
-
const $
|
|
729
|
+
const $e7551d1f11f7be1e$export$3355220a8108efc3 = (ctx, size)=>{
|
|
656
730
|
const outerRadius = size / 2;
|
|
657
731
|
const innerRadius = size / 4;
|
|
658
732
|
const steps = 36;
|
|
@@ -672,33 +746,72 @@ const $250b0111f88ffe51$export$3355220a8108efc3 = (ctx, size)=>{
|
|
|
672
746
|
}
|
|
673
747
|
}
|
|
674
748
|
};
|
|
675
|
-
const $
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
749
|
+
const $e7551d1f11f7be1e$export$31e39e0544d9b1e8 = (ctx, size)=>{
|
|
750
|
+
const radius = size / 8;
|
|
751
|
+
const centers = [
|
|
752
|
+
{
|
|
753
|
+
x: 0,
|
|
754
|
+
y: 0
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
x: radius * 2,
|
|
758
|
+
y: 0
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
x: radius,
|
|
762
|
+
y: radius * Math.sqrt(3)
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
x: -radius,
|
|
766
|
+
y: radius * Math.sqrt(3)
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
x: -radius * 2,
|
|
770
|
+
y: 0
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
x: -radius,
|
|
774
|
+
y: -radius * Math.sqrt(3)
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
x: radius,
|
|
778
|
+
y: -radius * Math.sqrt(3)
|
|
779
|
+
}
|
|
780
|
+
];
|
|
781
|
+
ctx.beginPath();
|
|
782
|
+
centers.forEach((center)=>{
|
|
783
|
+
ctx.moveTo(center.x + radius, center.y);
|
|
784
|
+
ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);
|
|
785
|
+
});
|
|
786
|
+
};
|
|
787
|
+
const $e7551d1f11f7be1e$export$c2fc138f94dd4b2a = {
|
|
788
|
+
flowerOfLife: $e7551d1f11f7be1e$export$3bac12a72d9de58c,
|
|
789
|
+
treeOfLife: $e7551d1f11f7be1e$export$639bf214428ceec2,
|
|
790
|
+
metatronsCube: $e7551d1f11f7be1e$export$de26673ceb3e04eb,
|
|
791
|
+
sriYantra: $e7551d1f11f7be1e$export$f743702d1590aefb,
|
|
792
|
+
seedOfLife: $e7551d1f11f7be1e$export$980631444e370ab0,
|
|
793
|
+
vesicaPiscis: $e7551d1f11f7be1e$export$eeae7765f05012e2,
|
|
794
|
+
torus: $e7551d1f11f7be1e$export$3355220a8108efc3,
|
|
795
|
+
eggOfLife: $e7551d1f11f7be1e$export$31e39e0544d9b1e8
|
|
683
796
|
};
|
|
684
797
|
|
|
685
798
|
|
|
686
|
-
const $
|
|
687
|
-
...(0, $
|
|
688
|
-
...(0, $
|
|
689
|
-
...(0, $
|
|
799
|
+
const $c66d34405eec1e19$export$4ff7fc6f1af248b5 = {
|
|
800
|
+
...(0, $2fcb7065aeebeb29$export$492753207a5258e1),
|
|
801
|
+
...(0, $01645fc0a37fc26d$export$dbe318a13ce51887),
|
|
802
|
+
...(0, $e7551d1f11f7be1e$export$c2fc138f94dd4b2a)
|
|
690
803
|
};
|
|
691
804
|
|
|
692
805
|
|
|
693
|
-
function $
|
|
806
|
+
function $7d6bc9fc27a23abe$export$39a95c82b20fdf81(gitHash) {
|
|
694
807
|
return parseInt(gitHash.slice(0, 8), 16);
|
|
695
808
|
}
|
|
696
|
-
function $
|
|
809
|
+
function $7d6bc9fc27a23abe$export$6b193cae730c547a(hash, index, min, max) {
|
|
697
810
|
const hexPair = hash.substr(index * 2 % hash.length, 2);
|
|
698
811
|
const decimal = parseInt(hexPair, 16);
|
|
699
812
|
return min + decimal / 255 * (max - min);
|
|
700
813
|
}
|
|
701
|
-
const $
|
|
814
|
+
const $7d6bc9fc27a23abe$export$bb9e4790bc99ae59 = {
|
|
702
815
|
GOLDEN_RATIO: 1.618034,
|
|
703
816
|
SQUARE_ROOT_2: Math.sqrt(2),
|
|
704
817
|
SQUARE_ROOT_3: Math.sqrt(3),
|
|
@@ -706,7 +819,7 @@ const $f391ca372769b92d$export$bb9e4790bc99ae59 = {
|
|
|
706
819
|
PI: Math.PI,
|
|
707
820
|
PHI: (1 + Math.sqrt(5)) / 2
|
|
708
821
|
};
|
|
709
|
-
class $
|
|
822
|
+
class $7d6bc9fc27a23abe$export$da2372f11bc66b3f {
|
|
710
823
|
static getProportionalSize(baseSize, proportion) {
|
|
711
824
|
return baseSize * proportion;
|
|
712
825
|
}
|
|
@@ -717,31 +830,31 @@ class $f391ca372769b92d$export$da2372f11bc66b3f {
|
|
|
717
830
|
static layerPatterns(ctx, patterns, config) {
|
|
718
831
|
const { baseSize: baseSize, baseOpacity: baseOpacity = 0.6, opacityReduction: opacityReduction = 0.1, rotationOffset: rotationOffset = 0, proportionType: proportionType = "GOLDEN_RATIO" } = config;
|
|
719
832
|
patterns.forEach((pattern, index)=>{
|
|
720
|
-
const size = this.getProportionalSize(baseSize, Math.pow($
|
|
833
|
+
const size = this.getProportionalSize(baseSize, Math.pow($7d6bc9fc27a23abe$export$bb9e4790bc99ae59[proportionType], index));
|
|
721
834
|
const opacity = Math.max(0.1, baseOpacity - index * opacityReduction);
|
|
722
835
|
const rotation = rotationOffset * index;
|
|
723
836
|
ctx.save();
|
|
724
837
|
ctx.globalAlpha = opacity;
|
|
725
838
|
ctx.rotate(rotation * Math.PI / 180);
|
|
726
|
-
(0, $
|
|
839
|
+
(0, $c66d34405eec1e19$export$4ff7fc6f1af248b5)[pattern.type](ctx, size, pattern.config);
|
|
727
840
|
ctx.restore();
|
|
728
841
|
});
|
|
729
842
|
}
|
|
730
843
|
}
|
|
731
844
|
|
|
732
845
|
|
|
733
|
-
function $
|
|
734
|
-
const seed = (0, $
|
|
735
|
-
const scheme = new (0, ($parcel$interopDefault($
|
|
846
|
+
function $b053edef45a6cc05$export$f116a24fd288e742(gitHash) {
|
|
847
|
+
const seed = (0, $7d6bc9fc27a23abe$export$39a95c82b20fdf81)(gitHash);
|
|
848
|
+
const scheme = new (0, ($parcel$interopDefault($8zHUo$colorscheme)))();
|
|
736
849
|
scheme.from_hue(seed % 360).scheme("analogic").variation("soft");
|
|
737
850
|
let colors = scheme.colors().map((hex)=>`#${hex}`);
|
|
738
851
|
const contrastingHue = (seed + 180) % 360;
|
|
739
|
-
const contrastingScheme = new (0, ($parcel$interopDefault($
|
|
852
|
+
const contrastingScheme = new (0, ($parcel$interopDefault($8zHUo$colorscheme)))();
|
|
740
853
|
contrastingScheme.from_hue(contrastingHue).scheme("mono").variation("soft");
|
|
741
854
|
colors.push(`#${contrastingScheme.colors()[0]}`);
|
|
742
855
|
return colors;
|
|
743
856
|
}
|
|
744
|
-
class $
|
|
857
|
+
class $b053edef45a6cc05$export$ab958c550f521376 {
|
|
745
858
|
constructor(gitHash){
|
|
746
859
|
this.seed = this.gitHashToSeed(gitHash);
|
|
747
860
|
this.baseScheme = this.generateBaseScheme();
|
|
@@ -752,12 +865,13 @@ class $89ee6ae350f2d46f$export$ab958c550f521376 {
|
|
|
752
865
|
return parseInt(hash.slice(0, 8), 16);
|
|
753
866
|
}
|
|
754
867
|
generateBaseScheme() {
|
|
755
|
-
const scheme = new (0, ($parcel$interopDefault($
|
|
868
|
+
const scheme = new (0, ($parcel$interopDefault($8zHUo$colorscheme)))();
|
|
869
|
+
scheme;
|
|
756
870
|
return scheme.from_hue(this.seed % 360).scheme("analogic").variation("soft").colors().map((hex)=>`#${hex}`);
|
|
757
871
|
}
|
|
758
872
|
generateComplementaryScheme() {
|
|
759
873
|
const complementaryHue = (this.seed + 180) % 360;
|
|
760
|
-
const scheme = new (0, ($parcel$interopDefault($
|
|
874
|
+
const scheme = new (0, ($parcel$interopDefault($8zHUo$colorscheme)))();
|
|
761
875
|
return scheme.from_hue(complementaryHue).scheme("mono").variation("soft").colors().map((hex)=>`#${hex}`);
|
|
762
876
|
}
|
|
763
877
|
generateMetallicColors() {
|
|
@@ -803,20 +917,21 @@ class $89ee6ae350f2d46f$export$ab958c550f521376 {
|
|
|
803
917
|
|
|
804
918
|
|
|
805
919
|
|
|
806
|
-
function $
|
|
920
|
+
function $7898cb8c4bee74e1$export$71b514a25c47df50(ctx, shape, x, y, config) {
|
|
921
|
+
const { fillColor: fillColor, strokeColor: strokeColor, strokeWidth: strokeWidth, size: size, rotation: rotation } = config;
|
|
807
922
|
ctx.save();
|
|
808
923
|
ctx.translate(x, y);
|
|
809
924
|
ctx.rotate(rotation * Math.PI / 180);
|
|
810
925
|
ctx.fillStyle = fillColor;
|
|
811
926
|
ctx.strokeStyle = strokeColor;
|
|
812
927
|
ctx.lineWidth = strokeWidth;
|
|
813
|
-
const drawFunction = (0, $
|
|
928
|
+
const drawFunction = (0, $c66d34405eec1e19$export$4ff7fc6f1af248b5)[shape];
|
|
814
929
|
if (drawFunction) drawFunction(ctx, size);
|
|
815
930
|
ctx.fill();
|
|
816
931
|
ctx.stroke();
|
|
817
932
|
ctx.restore();
|
|
818
933
|
}
|
|
819
|
-
function $
|
|
934
|
+
function $7898cb8c4bee74e1$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
820
935
|
const { fillColor: fillColor, strokeColor: strokeColor, strokeWidth: strokeWidth, size: size, rotation: rotation, patterns: patterns = [], proportionType: proportionType = "GOLDEN_RATIO", baseOpacity: baseOpacity = 0.6, opacityReduction: opacityReduction = 0.1 } = config;
|
|
821
936
|
ctx.save();
|
|
822
937
|
ctx.translate(x, y);
|
|
@@ -825,10 +940,10 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
825
940
|
ctx.fillStyle = fillColor;
|
|
826
941
|
ctx.strokeStyle = strokeColor;
|
|
827
942
|
ctx.lineWidth = strokeWidth;
|
|
828
|
-
const drawFunction = (0, $
|
|
943
|
+
const drawFunction = (0, $c66d34405eec1e19$export$4ff7fc6f1af248b5)[shape];
|
|
829
944
|
if (drawFunction) drawFunction(ctx, size);
|
|
830
945
|
// Layer additional patterns if specified
|
|
831
|
-
if (patterns.length > 0) (0, $
|
|
946
|
+
if (patterns.length > 0) (0, $7d6bc9fc27a23abe$export$da2372f11bc66b3f).layerPatterns(ctx, patterns, {
|
|
832
947
|
baseSize: size,
|
|
833
948
|
baseOpacity: baseOpacity,
|
|
834
949
|
opacityReduction: opacityReduction,
|
|
@@ -843,22 +958,11 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
843
958
|
|
|
844
959
|
|
|
845
960
|
/**
|
|
846
|
-
* @typedef {Object} ArtConfig
|
|
847
|
-
* @property {number} width - Canvas width in pixels
|
|
848
|
-
* @property {number} height - Canvas height in pixels
|
|
849
|
-
* @property {number} [gridSize=4] - Number of grid cells (gridSize x gridSize)
|
|
850
|
-
* @property {number} [layers=5] - Number of layers to generate
|
|
851
|
-
* @property {number} [shapesPerLayer] - Base number of shapes per layer (defaults to grid cells * 1.5)
|
|
852
|
-
* @property {number} [minShapeSize=20] - Minimum shape size
|
|
853
|
-
* @property {number} [maxShapeSize=180] - Maximum shape size
|
|
854
|
-
* @property {number} [baseOpacity=0.6] - Starting opacity for first layer
|
|
855
|
-
* @property {number} [opacityReduction=0.1] - How much to reduce opacity per layer
|
|
856
|
-
*/ /**
|
|
857
961
|
* Generate an abstract art image from a git hash with custom configuration
|
|
858
962
|
* @param {string} gitHash - The git hash to use as a seed
|
|
859
963
|
* @param {ArtConfig} [config={}] - Configuration options
|
|
860
964
|
* @returns {Buffer} PNG buffer of the generated image
|
|
861
|
-
*/ function $
|
|
965
|
+
*/ function $882b6d93070905b3$export$491525bf12232411(gitHash, config = {}) {
|
|
862
966
|
// Default configuration
|
|
863
967
|
const defaultConfig = {
|
|
864
968
|
width: 2048,
|
|
@@ -868,7 +972,8 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
868
972
|
minShapeSize: 20,
|
|
869
973
|
maxShapeSize: 600,
|
|
870
974
|
baseOpacity: 0.8,
|
|
871
|
-
opacityReduction: 0.4
|
|
975
|
+
opacityReduction: 0.4,
|
|
976
|
+
shapesPerLayer: 0
|
|
872
977
|
};
|
|
873
978
|
// Merge provided config with defaults
|
|
874
979
|
const finalConfig = {
|
|
@@ -878,9 +983,9 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
878
983
|
const { width: width, height: height, gridSize: gridSize, layers: layers, minShapeSize: minShapeSize, maxShapeSize: maxShapeSize, baseOpacity: baseOpacity, opacityReduction: opacityReduction } = finalConfig;
|
|
879
984
|
// Calculate shapes per layer based on grid size if not provided
|
|
880
985
|
finalConfig.shapesPerLayer = finalConfig.shapesPerLayer || Math.floor(gridSize * gridSize * 1.5);
|
|
881
|
-
const canvas = (0, $
|
|
986
|
+
const canvas = (0, $8zHUo$canvas.createCanvas)(width, height);
|
|
882
987
|
const ctx = canvas.getContext("2d");
|
|
883
|
-
const colorScheme = new (0, $
|
|
988
|
+
const colorScheme = new (0, $b053edef45a6cc05$export$ab958c550f521376)(gitHash);
|
|
884
989
|
const colors = colorScheme.getColorPalette("chakra");
|
|
885
990
|
// Create a gradient background
|
|
886
991
|
const gradient = ctx.createLinearGradient(0, 0, width, height);
|
|
@@ -888,7 +993,7 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
888
993
|
gradient.addColorStop(1, colorScheme.baseScheme[1]);
|
|
889
994
|
ctx.fillStyle = gradient;
|
|
890
995
|
ctx.fillRect(0, 0, width, height);
|
|
891
|
-
const shapeNames = Object.keys((0, $
|
|
996
|
+
const shapeNames = Object.keys((0, $c66d34405eec1e19$export$4ff7fc6f1af248b5));
|
|
892
997
|
const cellWidth = width / gridSize;
|
|
893
998
|
const cellHeight = height / gridSize;
|
|
894
999
|
// Scale shape sizes based on canvas dimensions
|
|
@@ -896,20 +1001,20 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
896
1001
|
const adjustedMinSize = minShapeSize * scaleFactor;
|
|
897
1002
|
const adjustedMaxSize = maxShapeSize * scaleFactor;
|
|
898
1003
|
for(let layer = 0; layer < layers; layer++){
|
|
899
|
-
const numShapes = finalConfig.shapesPerLayer + Math.floor((0, $
|
|
1004
|
+
const numShapes = finalConfig.shapesPerLayer + Math.floor((0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer, 0, finalConfig.shapesPerLayer / 2));
|
|
900
1005
|
const layerOpacity = baseOpacity - layer * opacityReduction;
|
|
901
1006
|
for(let i = 0; i < numShapes; i++){
|
|
902
1007
|
const gridX = Math.floor(i / gridSize);
|
|
903
1008
|
const gridY = i % gridSize;
|
|
904
|
-
const cellOffsetX = (0, $
|
|
905
|
-
const cellOffsetY = (0, $
|
|
1009
|
+
const cellOffsetX = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 2, 0, cellWidth);
|
|
1010
|
+
const cellOffsetY = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 2 + 1, 0, cellHeight);
|
|
906
1011
|
const x = gridX * cellWidth + cellOffsetX;
|
|
907
1012
|
const y = gridY * cellHeight + cellOffsetY;
|
|
908
|
-
const shape = shapeNames[Math.floor((0, $
|
|
909
|
-
const size = adjustedMinSize + (0, $
|
|
910
|
-
const rotation = (0, $
|
|
911
|
-
const fillColorIndex = Math.floor((0, $
|
|
912
|
-
const strokeColorIndex = Math.floor((0, $
|
|
1013
|
+
const shape = shapeNames[Math.floor((0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 3, 0, shapeNames.length))];
|
|
1014
|
+
const size = adjustedMinSize + (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 4, 0, adjustedMaxSize - adjustedMinSize);
|
|
1015
|
+
const rotation = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 5, 0, 360);
|
|
1016
|
+
const fillColorIndex = Math.floor((0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 6, 0, Object.keys(colors).length));
|
|
1017
|
+
const strokeColorIndex = Math.floor((0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, layer * numShapes + i * 7, 0, Object.keys(colors).length));
|
|
913
1018
|
ctx.globalAlpha = layerOpacity;
|
|
914
1019
|
// drawShape(
|
|
915
1020
|
// ctx,
|
|
@@ -922,9 +1027,9 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
922
1027
|
// size,
|
|
923
1028
|
// rotation
|
|
924
1029
|
// );
|
|
925
|
-
(0, $
|
|
926
|
-
fillColor: colors[fillColorIndex],
|
|
927
|
-
strokeColor: colors[strokeColorIndex],
|
|
1030
|
+
(0, $7898cb8c4bee74e1$export$bb35a6995ddbf32d)(ctx, shape, x, y, {
|
|
1031
|
+
fillColor: Object.values(colors)[fillColorIndex],
|
|
1032
|
+
strokeColor: Object.values(colors)[strokeColorIndex],
|
|
928
1033
|
strokeWidth: 1.5 * scaleFactor,
|
|
929
1034
|
size: size,
|
|
930
1035
|
rotation: rotation,
|
|
@@ -936,14 +1041,14 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
936
1041
|
}
|
|
937
1042
|
// Add connecting lines scaled to canvas size
|
|
938
1043
|
ctx.globalAlpha = 0.2;
|
|
939
|
-
ctx.strokeStyle = colors[colors.length - 1];
|
|
1044
|
+
ctx.strokeStyle = Object.values(colors)[Object.keys(colors).length - 1];
|
|
940
1045
|
ctx.lineWidth = 1 * scaleFactor;
|
|
941
1046
|
const numLines = Math.floor(15 * (width * height) / 1048576);
|
|
942
1047
|
for(let i = 0; i < numLines; i++){
|
|
943
|
-
const x1 = (0, $
|
|
944
|
-
const y1 = (0, $
|
|
945
|
-
const x2 = (0, $
|
|
946
|
-
const y2 = (0, $
|
|
1048
|
+
const x1 = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, i * 4, 0, width);
|
|
1049
|
+
const y1 = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, i * 4 + 1, 0, height);
|
|
1050
|
+
const x2 = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, i * 4 + 2, 0, width);
|
|
1051
|
+
const y2 = (0, $7d6bc9fc27a23abe$export$6b193cae730c547a)(gitHash, i * 4 + 3, 0, height);
|
|
947
1052
|
ctx.beginPath();
|
|
948
1053
|
ctx.moveTo(x1, y1);
|
|
949
1054
|
ctx.lineTo(x2, y2);
|
|
@@ -961,13 +1066,13 @@ function $ac20c1c0ccca1e19$export$bb35a6995ddbf32d(ctx, shape, x, y, config) {
|
|
|
961
1066
|
* @param {number} width - The width of the generated image
|
|
962
1067
|
* @param {number} height - The height of the generated image
|
|
963
1068
|
* @returns {string} Path to the saved image
|
|
964
|
-
*/ function $
|
|
965
|
-
if (!(0, ($parcel$interopDefault($
|
|
1069
|
+
*/ function $882b6d93070905b3$export$ea0bbc160a51089a(imageBuffer, outputDir, gitHash, label = "", width, height) {
|
|
1070
|
+
if (!(0, ($parcel$interopDefault($8zHUo$fs))).existsSync(outputDir)) (0, ($parcel$interopDefault($8zHUo$fs))).mkdirSync(outputDir, {
|
|
966
1071
|
recursive: true
|
|
967
1072
|
});
|
|
968
1073
|
const filename = label ? `${label}-${width}x${height}-${gitHash.slice(0, 8)}.png` : `${gitHash.slice(0, 8)}-${width}x${height}.png`;
|
|
969
|
-
const outputPath = (0, ($parcel$interopDefault($
|
|
970
|
-
(0, ($parcel$interopDefault($
|
|
1074
|
+
const outputPath = (0, ($parcel$interopDefault($8zHUo$path))).join(outputDir, filename);
|
|
1075
|
+
(0, ($parcel$interopDefault($8zHUo$fs))).writeFileSync(outputPath, imageBuffer);
|
|
971
1076
|
console.log(`Generated: ${outputPath}`);
|
|
972
1077
|
return outputPath;
|
|
973
1078
|
}
|