xxxxxxxxxx
264
let Shadow = [
{ x: 446, y: 1420 },
{ x: 456, y: 1352 },
{ x: 474, y: 1288 },
{ x: 493, y: 1226 },
{ x: 515, y: 1166 },
{ x: 539, y: 1100 },
{ x: 559, y: 1012 },
{ x: 558, y: 943 },
{ x: 555, y: 900 },
{ x: 543, y: 868 },
{ x: 544, y: 817 },
{ x: 559, y: 757 },
{ x: 572, y: 717 },
{ x: 611, y: 644 },
{ x: 635, y: 600 },
{ x: 646, y: 548 },
{ x: 646, y: 506 },
{ x: 627, y: 523 },
{ x: 616, y: 546 },
{ x: 597, y: 579 },
{ x: 553, y: 615 },
{ x: 511, y: 651 },
{ x: 478, y: 685 },
{ x: 441, y: 663 },
{ x: 431, y: 625 },
{ x: 445, y: 604 },
{ x: 476, y: 576 },
{ x: 475, y: 554 },
{ x: 462, y: 502 },
{ x: 455, y: 444 },
{ x: 452, y: 366 },
{ x: 445, y: 356 },
{ x: 440, y: 329 },
{ x: 432, y: 328 },
{ x: 427, y: 361 },
{ x: 417, y: 387 },
{ x: 395, y: 413 },
{ x: 393, y: 477 },
{ x: 380, y: 497 },
{ x: 375, y: 541 },
{ x: 341, y: 589 },
{ x: 311, y: 644 },
{ x: 300, y: 651 },
{ x: 293, y: 636 },
{ x: 274, y: 671 },
{ x: 245, y: 694 },
{ x: 231, y: 707 },
{ x: 205, y: 754 },
{ x: 195, y: 773 },
{ x: 141, y: 859 },
{ x: 77, y: 951 },
{ x: 39, y: 1002 },
{ x: 24, y: 1032 },
{ x: 35, y: 1038 },
{ x: 49, y: 1056 },
{ x: 90, y: 1061 },
{ x: 103, y: 1075 },
{ x: 98, y: 1127 },
{ x: 65, y: 1171 },
{ x: -20, y: 1195 },
{ x: -20, y: 1008 },
{ x: 35, y: 873 },
{ x: 73, y: 810 },
{ x: 134, y: 735 },
{ x: 127, y: 722 },
{ x: 151, y: 682 },
{ x: 170, y: 640 },
{ x: 147, y: 655 },
{ x: 118, y: 689 },
{ x: 102, y: 690 },
{ x: -10, y: 816 },
{ x: -10, y: 720 },
{ x: 43, y: 652 },
{ x: 36, y: 633 },
{ x: 86, y: 565 },
{ x: 121, y: 527 },
{ x: 134, y: 506 },
{ x: 143, y: 473 },
{ x: 161, y: 446 },
{ x: 287, y: 273 },
{ x: 248, y: 309 },
{ x: 218, y: 343 },
{ x: 200, y: 368 },
{ x: 192, y: 392 },
{ x: 166, y: 418 },
{ x: 142, y: 444 },
{ x: 158, y: 408 },
{ x: 130, y: 443 },
{ x: 147, y: 405 },
{ x: 136, y: 415 },
{ x: 125, y: 435 },
{ x: 126, y: 415 },
{ x: 138, y: 396 },
{ x: 191, y: 339 },
{ x: 216, y: 299 },
{ x: 266, y: 245 },
{ x: 295, y: 212 },
{ x: 345, y: 171 },
{ x: 375, y: 155 },
{ x: 393, y: 156 },
{ x: 432, y: 162 },
{ x: 444, y: 151 },
{ x: 444, y: 126 },
{ x: 465, y: 100 },
{ x: 497, y: 85 },
{ x: 531, y: 84 },
{ x: 544, y: 98 },
{ x: 541, y: 112 },
{ x: 527, y: 132 },
{ x: 519, y: 146 },
{ x: 487, y: 167 },
{ x: 478, y: 175 },
{ x: 472, y: 195 },
{ x: 495, y: 226 },
{ x: 503, y: 244 },
{ x: 503, y: 283 },
{ x: 498, y: 323 },
{ x: 491, y: 363 },
{ x: 500, y: 397 },
{ x: 508, y: 438 },
{ x: 508, y: 541 },
{ x: 515, y: 587 },
{ x: 588, y: 513 },
{ x: 607, y: 481 },
{ x: 620, y: 447 },
{ x: 639, y: 411 },
{ x: 658, y: 398 },
{ x: 700, y: 400 },
{ x: 723, y: 393 },
{ x: 736, y: 375 },
{ x: 738, y: 307 },
{ x: 752, y: 272 },
{ x: 773, y: 249 },
{ x: 802, y: 249 },
{ x: 836, y: 267 },
{ x: 838, y: 307 },
{ x: 825, y: 341 },
{ x: 832, y: 362 },
{ x: 829, y: 386 },
{ x: 811, y: 398 },
{ x: 817, y: 413 },
{ x: 838, y: 420 },
{ x: 863, y: 421 },
{ x: 881, y: 442 },
{ x: 894, y: 491 },
{ x: 901, y: 590 },
{ x: 888, y: 610 },
{ x: 867, y: 588 },
{ x: 857, y: 567 },
{ x: 840, y: 551 },
{ x: 827, y: 574 },
{ x: 829, y: 626 },
{ x: 841, y: 678 },
{ x: 862, y: 867 },
{ x: 847, y: 933 },
{ x: 795, y: 1039 },
{ x: 759, y: 1136 },
{ x: 732, y: 1274 },
{ x: 725, y: 1356 },
{ x: 720, y: 1420 },
{ x: 606, y: 1420 },
{ x: 614, y: 1313 },
{ x: 629, y: 1196 },
{ x: 639, y: 1141 },
{ x: 660, y: 1068 },
{ x: 685, y: 952 },
{ x: 680, y: 937 },
{ x: 672, y: 950 },
{ x: 667, y: 972 },
{ x: 655, y: 1034 },
{ x: 641, y: 1104 },
{ x: 606, y: 1225 },
{ x: 566, y: 1400 },
];
function setup() {
createCanvas(1000, 1400);
}
function draw() {
background(220);
cardborder(80)
noLoop();
//background
noStroke()
let tileSize = 2.5;
let rows = height / tileSize;
let cols = width / tileSize;
for (let y = 0; y < rows; y++) {
for (let x = 0; x < cols; x++) {
let xPos = x * tileSize;
let yPos = y * tileSize;
let gradient = map(y, 0, rows - 1, 230, 165);
let randomOffset = random(-50, 20);
let randomGradient = constrain(gradient + randomOffset, 0, 255);
fill(randomGradient);
rect(xPos, yPos, tileSize, tileSize);
}
}
//shadow
fill(0,0,0,130);
noStroke();
beginShape();
for (let p of Shadow) {
curveVertex(p.x, p.y);
}
curveVertex(Shadow[0].x, Shadow[0].y);
curveVertex(Shadow[1].x, Shadow[1].y);
curveVertex(Shadow[2].x, Shadow[2].y);
endShape()
// Draw the rank and suit
cardborder(80);
ranksuit("K", "H", 80);
translate(width, height);
rotate(radians(180));
ranksuit("K", "H", 80);
}
function ranksuit(rank, suit, d) {
// emojis: ["♠️♦️♣️♥️"]
fill(200, 0, 0);
let e = " ";
if (suit == "H") e = "♥️";
if (suit == "S") {
e = "♠️";
fill(40);
}
if (suit == "C") {
e = "♣️";
fill(40);
}
if (suit == "D") e = "♦️";
textAlign(CENTER);
textSize(d * 1.5);
text(rank, d * 1., d * 1.8);
textSize(d);
text(e, d * 1., d * 2.8);
}
function cardborder(corner) {
push();
noFill();
strokeWeight(corner);
stroke(40);
let dd = corner * 0.5;
rect(0 - dd, 0 - dd, width + corner, height + corner, corner);
pop();
}
function keyPressed(){
if (key === 's' || key === 'S'){
save('Empathy.png')
}}