teach/public/js/widgets/coloring-scenes-advanced.js
Ramon 6a08cee75c
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 39s
feat: herteken kleurplaten als illustraties (v0.4.73-beta)
- vervang alle 28 kleurplaten door samenhangende scènes met organische contouren en leeftijdsgerichte detaillering
- houd buiten- en binnenlijnen zichtbaar boven kwastwerk en sluit verfemmerkleuren zonder witte rand aan
- borg gesloten kleurvakken, anatomische laagvolgorde en scene-opbouw met uitgebreide regressietests
2026-07-29 15:44:38 +02:00

224 lines
20 KiB
JavaScript

/* teach - professionele kleurboekillustraties voor groep 7-8 */
"use strict";
function proFourSeasons(){return coloringScene(
coloringPart("rect","seasons-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringPart("path","seasons-ground",'d="M 4 466 C 151 423 284 446 403 479 C 535 516 660 479 796 438 L 796 596 L 4 596 Z"')+
coloringFigure("four-seasons-tree",
coloringPart("path","seasons-trunk",'d="M 307 536 C 338 465 353 391 350 314 C 347 259 327 212 298 172 C 339 190 368 221 387 260 C 389 203 378 157 354 119 C 394 139 423 174 436 219 C 460 181 493 155 536 145 C 499 185 477 231 470 280 C 495 245 525 225 562 220 C 524 264 496 313 488 368 C 481 429 495 486 526 536 C 462 520 371 521 307 536 Z"')+
coloringPart("path","spring-crown",'d="M 96 247 C 82 203 111 166 151 164 C 160 119 208 99 243 126 C 273 91 326 102 342 145 C 381 155 394 200 369 230 C 341 254 305 252 280 232 C 245 264 194 254 176 215 C 142 235 112 231 96 247 Z"')+
coloringPart("path","summer-crown",'d="M 342 144 C 349 100 389 76 428 91 C 450 50 503 51 526 92 C 568 71 614 101 616 147 C 649 169 640 213 606 229 C 581 264 529 264 503 230 C 461 254 414 232 407 191 C 376 194 349 178 342 144 Z"',2)+
coloringPart("path","autumn-crown",'d="M 96 264 C 68 281 69 324 102 344 C 92 384 128 414 165 401 C 191 437 242 433 265 395 C 305 409 341 381 332 341 C 359 312 339 270 302 264 C 284 229 235 224 211 255 C 174 230 125 237 96 264 Z"',2)+
coloringPart("path","winter-crown",'d="M 402 248 C 378 272 389 313 421 324 C 409 359 439 391 474 384 C 496 417 544 413 563 377 C 599 390 631 362 622 326 C 651 302 638 262 604 251 C 591 215 543 204 516 232 C 483 211 432 217 402 248 Z"',3)+
coloringLine("path",'d="M 350 314 C 333 273 315 231 298 172 M 387 260 C 366 225 347 194 330 168 M 436 219 C 419 266 409 319 411 373 M 470 280 C 447 312 432 345 425 386 M 488 368 C 462 393 446 424 442 466" fill="none"',2)
)+
coloringFigure("season-symbols",
coloringFlower(188,173,"spring-blossom",.58,2)+
coloringPart("circle","summer-fruit-a",'cx="494" cy="137" r="21"',2)+
coloringPart("circle","summer-fruit-b",'cx="550" cy="177" r="18"',3)+
coloringLeaf("autumn-leaf-a",145,321,-24,.62,2)+coloringLeaf("autumn-leaf-b",256,355,31,.58,3)+
coloringLine("path",'d="M 510 276 V 354 M 476 296 L 544 334 M 476 334 L 544 296 M 510 276 L 500 289 M 510 276 L 520 289 M 510 354 L 500 341 M 510 354 L 520 341 M 476 296 L 493 298 M 476 296 L 484 311 M 544 334 L 527 332 M 544 334 L 536 319 M 476 334 L 493 332 M 476 334 L 484 319 M 544 296 L 527 298 M 544 296 L 536 311" fill="none"',3)+
coloringLine("path",'d="M 494 115 q 2 -20 18 -27 M 550 159 q 4 -17 17 -22" fill="none"',3)
)+
coloringPart("path","season-path",'d="M 340 536 H 500 L 575 596 H 263 Z"',3)
)}
function proEcoCity(){return coloringScene(
coloringPart("rect","eco-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringPart("path","eco-park",'d="M 4 426 C 152 389 280 412 400 444 C 535 481 658 441 796 407 L 796 596 L 4 596 Z"')+
coloringFigure("eco-buildings",
coloringPart("path","eco-building-left",'d="M 74 200 H 252 V 481 H 74 Z"')+
coloringPart("path","eco-building-center",'d="M 290 274 L 400 188 L 510 274 V 481 H 290 Z"')+
coloringPart("path","eco-building-right",'d="M 548 154 H 721 V 481 H 548 Z"',2)+
coloringPart("path","solar-panel-left",'d="M 58 197 L 92 126 H 247 L 260 197 Z"')+
coloringPart("path","solar-panel-right",'d="M 531 151 L 560 83 H 720 L 736 151 Z"',2)+
coloringPart("path","eco-door-center",'d="M 365 394 C 365 368 380 354 400 354 C 420 354 435 368 435 394 V 481 H 365 Z"')+
coloringPart("path","eco-door-left",'d="M 137 397 C 137 372 150 359 167 359 C 184 359 197 372 197 397 V 481 H 137 Z"',2)+
coloringPart("path","eco-door-right",'d="M 607 397 C 607 372 620 359 637 359 C 654 359 667 372 667 397 V 481 H 607 Z"',2)+
coloringLine("path",'d="M 80 162 H 253 M 121 126 L 101 197 M 169 126 L 155 197 M 217 126 L 209 197 M 550 117 H 728 M 590 83 L 570 151 M 642 83 L 626 151 M 694 83 L 682 151 M 102 245 H 145 V 303 H 102 Z M 180 245 H 223 V 303 H 180 Z M 102 319 H 145 V 365 H 102 Z M 180 319 H 223 V 365 H 180 Z M 577 203 H 620 V 261 H 577 Z M 649 203 H 692 V 261 H 649 Z M 577 281 H 620 V 339 H 577 Z M 649 281 H 692 V 339 H 649 Z M 326 294 H 370 V 344 H 326 Z M 430 294 H 474 V 344 H 430 Z" fill="none"',2)
)+
coloringFigure("wind-turbine",
coloringPart("path","turbine-mast",'d="M 735 174 L 752 174 L 771 501 H 716 Z"',2)+
coloringPart("path","turbine-blade-a",'d="M 744 174 C 706 139 681 102 687 70 C 720 82 739 124 754 169 Z"',2)+
coloringPart("path","turbine-blade-b",'d="M 752 174 C 793 163 824 166 842 184 C 813 204 781 196 754 183 Z"',3)+
coloringPart("path","turbine-blade-c",'d="M 747 182 C 731 225 707 256 676 264 C 669 230 701 198 741 176 Z"',3)+
coloringPart("circle","turbine-hub",'cx="749" cy="177" r="19"',2)
,'transform="translate(-44 0)"')+
coloringFigure("eco-bicycle",
coloringPart("circle","bike-wheel-a",'cx="211" cy="530" r="42"',3)+
coloringPart("circle","bike-wheel-b",'cx="342" cy="530" r="42"',3)+
coloringLine("path",'d="M 211 530 L 260 463 L 302 530 H 211 L 260 530 L 285 476 H 331 M 260 463 H 236 M 302 530 L 342 530 M 327 471 l 18 -18 M 280 476 h 35" fill="none"',2)
)+
coloringFigure("eco-trees",
coloringPart("path","eco-tree-left-trunk",'d="M 29 396 H 57 V 510 H 29 Z"',3)+
coloringPart("path","eco-tree-left-crown",'d="M 5 378 C 7 337 38 316 72 329 C 96 311 129 329 130 361 C 126 393 99 405 70 396 C 46 414 13 403 5 378 Z"',2)+
coloringPart("path","eco-tree-mid-trunk",'d="M 518 406 H 544 V 501 H 518 Z"',3)+
coloringPart("path","eco-tree-mid-crown",'d="M 482 389 C 482 356 509 335 539 343 C 562 325 594 342 598 372 C 598 400 570 414 545 406 C 520 422 488 414 482 389 Z"',3)
)
)}
function proMandala(){
const outer=[0,30,60,90,120,150,180,210,240,270,300,330].map((angle,index)=>
coloringPart("path",`mandala-outer-${index}`,'d="M 400 74 C 364 118 356 158 400 191 C 444 158 436 118 400 74 Z" transform="rotate('+angle+' 400 300)"',index%3===0?2:3)
).join("");
const middle=[0,45,90,135,180,225,270,315].map((angle,index)=>
coloringPart("path",`mandala-middle-${index}`,'d="M 400 173 C 368 209 369 247 400 271 C 431 247 432 209 400 173 Z" transform="rotate('+angle+' 400 300)"',index%2?3:2)
).join("");
const inner=[0,60,120,180,240,300].map((angle,index)=>
coloringPart("path",`mandala-inner-${index}`,'d="M 400 241 C 379 264 380 291 400 307 C 420 291 421 264 400 241 Z" transform="rotate('+angle+' 400 300)"',2)
).join("");
return coloringScene(
coloringPart("rect","mandala-paper",'x="4" y="4" width="792" height="592" rx="28"')+
coloringFigure("botanical-mandala",
outer+middle+inner+
coloringLine("circle",'cx="400" cy="300" r="242" fill="none"',3)+
coloringLine("circle",'cx="400" cy="300" r="145" fill="none"',2)+
coloringPart("circle","mandala-center",'cx="400" cy="300" r="58"')+
coloringPart("path","mandala-star",'d="M 400 257 L 412 286 L 444 300 L 412 314 L 400 343 L 388 314 L 356 300 L 388 286 Z"',2)+
coloringLine("path",'d="M 400 58 V 74 M 400 526 V 542 M 158 300 H 174 M 626 300 H 642 M 229 129 L 241 141 M 559 459 L 571 471 M 229 471 L 241 459 M 559 141 L 571 129" fill="none"',3)
)
)
}
function proEcosystem(){return coloringScene(
coloringPart("rect","pond-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringPart("path","pond-bank",'d="M 4 383 C 140 344 273 371 395 401 C 534 435 660 399 796 363 L 796 596 L 4 596 Z"')+
coloringPart("path","pond-water",'d="M 54 454 C 101 390 234 376 400 389 C 574 402 704 402 751 468 C 712 542 577 575 399 571 C 220 568 89 541 54 454 Z"',2)+
coloringFigure("pond-reeds",
coloringPart("path","reed-left-a",'d="M 89 423 C 71 358 76 288 100 229 C 120 291 119 358 108 425 Z"')+
coloringPart("path","reed-left-b",'d="M 125 426 C 109 353 120 285 147 241 C 164 301 158 365 147 430 Z"',2)+
coloringPart("path","reed-right-a",'d="M 675 427 C 663 355 672 286 700 232 C 718 294 710 365 699 431 Z"',2)+
coloringPart("path","reed-right-b",'d="M 717 432 C 706 367 722 312 747 276 C 759 329 752 382 741 435 Z"',3)+
coloringLine("path",'d="M 99 229 C 73 202 74 164 101 151 C 126 168 126 208 99 229 M 700 232 C 676 204 678 166 704 153 C 728 171 727 211 700 232" fill="none"',2)
)+
coloringFigure("pond-frog",
coloringPart("path","frog-leg-a",'d="M 269 436 C 227 435 193 459 183 493 C 218 510 264 490 292 462 Z"')+
coloringPart("path","frog-leg-b",'d="M 525 438 C 567 436 601 460 611 494 C 575 510 532 492 503 464 Z"',2)+
coloringPart("path","frog-body",'d="M 259 390 C 271 338 325 308 390 313 C 455 318 505 351 512 405 C 518 458 470 494 399 496 C 329 497 248 454 259 390 Z"')+
coloringPart("path","frog-head",'d="M 289 343 C 295 286 345 254 405 258 C 466 261 508 301 504 356 C 500 410 452 437 391 432 C 330 427 284 398 289 343 Z"')+
coloringPart("path","frog-eye-a",'d="M 314 291 C 305 259 326 234 355 238 C 384 243 394 276 375 301 Z"',2)+
coloringPart("path","frog-eye-b",'d="M 425 291 C 418 257 442 234 470 241 C 497 248 504 281 484 303 Z"',2)+
coloringPart("path","frog-belly",'d="M 331 400 C 358 375 435 376 462 404 C 452 457 357 467 331 400 Z"',3)+
coloringDot(351,270,5)+coloringDot(465,273,5)+
coloringLine("path",'d="M 352 356 Q 397 386 449 354 M 374 381 Q 399 398 425 380 M 208 491 L 184 519 M 236 486 L 222 524 M 584 492 L 611 519 M 555 487 L 568 526" fill="none"',2)
)+
coloringFigure("lily-life",
coloringPart("path","lily-pad-left",'d="M 83 486 C 122 450 201 447 239 487 L 188 499 C 207 516 211 541 194 558 C 142 565 90 542 83 486 Z"',2)+
coloringPart("path","lily-pad-right",'d="M 554 515 C 600 480 679 486 711 529 L 661 538 C 679 557 675 578 659 586 C 610 586 568 562 554 515 Z"',3)+
coloringFlower(629,492,"pond-lily",.64,3)+
coloringPart("path","pond-fish",'d="M 317 531 C 354 498 415 500 451 534 C 414 564 354 564 317 531 Z"',3)+
coloringPart("path","pond-fish-tail",'d="M 317 531 L 279 506 L 286 555 Z"',3)+
coloringDot(423,531,4,3)
)+
coloringFigure("dragonfly",
coloringPart("path","dragonfly-wing-a",'d="M 542 189 C 500 153 455 155 444 184 C 467 212 506 216 545 205 Z"',3)+
coloringPart("path","dragonfly-wing-b",'d="M 552 191 C 582 148 623 140 642 166 C 628 200 590 214 553 208 Z"',3)+
coloringPart("path","dragonfly-body",'d="M 539 180 C 550 163 566 164 575 181 L 568 284 C 559 304 547 300 541 281 Z"',2)+
coloringPart("circle","dragonfly-head",'cx="557" cy="162" r="17"',3)
)
)}
function proSolarObservatory(){return coloringScene(
coloringPart("rect","observatory-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringFigure("observatory-mountains",
coloringPart("path","observatory-mountain-a",'d="M 4 431 L 174 202 L 337 431 Z"')+
coloringPart("path","observatory-mountain-b",'d="M 468 431 L 643 211 L 796 431 Z"',2)+
coloringPart("path","observatory-snow-a",'d="M 128 265 L 174 202 L 222 269 L 198 255 L 175 282 L 152 253 Z"',2)+
coloringPart("path","observatory-snow-b",'d="M 600 267 L 643 211 L 686 271 L 665 259 L 644 283 L 622 257 Z"',3)
)+
coloringPart("path","observatory-hill",'d="M 4 431 C 145 394 280 417 399 449 C 532 485 660 449 796 411 L 796 596 L 4 596 Z"')+
coloringFigure("observatory-building",
coloringPart("path","observatory-base",'d="M 174 381 H 573 C 603 381 623 401 623 431 V 540 H 174 Z"')+
coloringPart("path","observatory-dome",'d="M 198 381 C 210 269 286 214 389 215 C 493 216 567 272 579 381 Z"')+
coloringPart("path","dome-slot",'d="M 366 216 C 381 214 396 214 411 217 L 421 381 H 352 Z"',2)+
coloringPart("path","observatory-door",'d="M 513 446 C 513 419 527 405 546 405 C 565 405 579 419 579 446 V 540 H 513 Z"',2)+
coloringPart("path","observatory-panel",'d="M 216 436 H 326 V 500 H 216 Z"',3)+
coloringLine("path",'d="M 190 381 H 608 M 228 458 H 314 M 228 478 H 314 M 228 498 H 314" fill="none"',2)
)+
coloringFigure("observatory-telescope",
coloringPart("path","scope-mount",'d="M 353 368 L 390 286 L 429 368 Z"',2)+
coloringPart("path","scope-barrel",'d="M 386 289 L 560 174 L 594 214 L 420 329 Z"')+
coloringPart("path","scope-lens",'d="M 554 169 C 573 148 608 166 614 191 C 612 219 587 231 566 216 C 551 204 547 185 554 169 Z"',2)+
coloringPart("path","scope-brace",'d="M 383 322 L 355 452 H 381 L 413 326 Z"',3)+
coloringPart("circle","scope-pivot",'cx="405" cy="307" r="22"',2)+
coloringLine("path",'d="M 421 302 L 572 203 M 389 286 L 405 307" fill="none"',3)
)+
coloringFigure("star-map",
coloringPart("path","map-board",'d="M 648 433 H 770 V 526 H 648 Z"',3)+
coloringLine("path",'d="M 667 499 C 688 458 721 455 752 482 M 670 463 L 744 509 M 683 450 L 724 518" fill="none"',3)
)+
coloringStars([[80,92,13],[288,99,9],[675,86,16],[728,145,8]],"observatory-star",3)+
coloringPart("circle","observatory-moon",'cx="112" cy="156" r="42"',3)
)}
function proSavannaWeb(){return coloringScene(
coloringPart("rect","savanna-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringPart("path","savanna-ground",'d="M 4 424 C 145 388 275 408 397 441 C 531 477 662 440 796 405 L 796 596 L 4 596 Z"')+
coloringFigure("acacia",
coloringPart("path","acacia-trunk",'d="M 58 455 C 91 382 108 309 106 236 C 104 190 91 153 72 122 C 106 135 130 159 146 192 C 164 155 191 131 229 121 C 204 159 192 198 194 242 C 197 319 217 389 252 455 Z"')+
coloringPart("path","acacia-crown",'d="M 21 154 C 25 108 65 84 107 98 C 130 55 184 51 211 91 C 253 71 305 99 310 144 C 348 166 337 211 301 224 H 71 C 31 216 11 189 21 154 Z"',2)
)+
coloringFigure("savanna-lion",
coloringPart("path","lion-tail",'d="M 320 384 C 283 355 248 361 238 394 C 234 427 258 456 287 454 C 307 452 317 431 306 416 C 298 404 283 408 280 421 C 270 401 282 388 311 397 L 344 418 Z"',2)+
[352,419,492,545].map((x,i)=>coloringPart("path",`lion-leg-${i}`,`d="M ${x} 438 C ${x-2} 475 ${x-5} 518 ${x+1} 551 C ${x+15} 557 ${x+35} 557 ${x+48} 550 L ${x+43} 533 C ${x+35} 497 ${x+37} 466 ${x+33} 432 Z"`,i>1?2:1)).join("")+
coloringPart("path","lion-body",'d="M 315 392 C 321 337 374 307 454 309 C 528 311 584 340 594 391 C 604 447 550 481 472 482 C 390 483 309 448 315 392 Z"')+
coloringPart("path","lion-mane",'d="M 578 229 C 598 207 628 211 641 235 C 671 229 691 250 687 278 C 714 292 717 322 697 341 C 710 368 692 393 665 397 C 654 424 623 432 601 414 C 573 429 544 413 540 385 C 514 373 508 343 526 321 C 510 297 524 269 550 263 C 551 244 563 232 578 229 Z"')+
coloringPart("path","lion-face",'d="M 556 286 C 575 258 626 252 653 276 C 681 301 681 349 654 377 C 628 404 577 400 554 371 C 533 345 535 310 556 286 Z"',2)+
coloringPart("path","lion-muzzle",'d="M 565 337 C 580 316 636 315 653 339 C 657 365 635 382 608 381 C 580 381 560 363 565 337 Z"',3)+
coloringDot(578,315,5)+coloringDot(635,315,5)+
coloringLine("path",'d="M 600 345 l 9 8 l 9 -8 M 584 364 Q 608 380 636 363 M 342 551 h 50 M 410 551 h 50 M 485 551 h 50 M 538 551 h 50" fill="none"',2)
,'transform="translate(-95 110) scale(.70)"')+
coloringFigure("savanna-zebra",
coloringPart("path","zebra-tail",'d="M 523 433 C 493 410 472 422 477 452 C 485 480 508 491 530 471 L 548 448 Z"',3)+
[552,602,675,720].map((x,i)=>coloringPart("path",`zebra-leg-${i}`,`d="M ${x} 456 C ${x-2} 486 ${x-4} 525 ${x+1} 554 C ${x+13} 559 ${x+29} 559 ${x+41} 553 L ${x+37} 538 C ${x+29} 508 ${x+31} 482 ${x+27} 452 Z"`,3)).join("")+
coloringPart("path","zebra-body",'d="M 520 418 C 527 371 570 347 633 351 C 695 355 734 383 738 426 C 737 469 692 493 630 489 C 565 487 515 464 520 418 Z"',2)+
coloringPart("path","zebra-neck",'d="M 680 392 C 685 346 704 304 733 278 L 776 305 C 756 346 748 390 744 438 Z"',2)+
coloringPart("path","zebra-head",'d="M 716 274 C 741 246 781 240 808 266 C 829 288 822 326 795 346 C 768 366 729 357 711 330 C 697 309 701 289 716 274 Z"',2)+
coloringPart("path","zebra-muzzle",'d="M 768 309 C 790 295 821 304 830 326 C 814 347 783 351 765 333 Z"',3)+
coloringPart("path","zebra-ear-a",'d="M 729 270 L 722 229 L 753 260 Z"',3)+
coloringPart("path","zebra-ear-b",'d="M 765 252 L 786 219 L 793 263 Z"',3)+
coloringPart("path","zebra-mane",'d="M 704 294 C 684 326 680 364 688 408 L 708 393 C 700 353 709 320 731 285 Z"',3)+
coloringDot(780,280,4,3)+
coloringLine("path",'d="M 549 383 C 566 414 568 452 557 476 M 591 357 C 610 398 610 456 598 485 M 638 351 C 653 390 654 455 643 490 M 686 361 C 698 392 700 448 691 481 M 713 323 L 756 350 M 708 352 L 751 378 M 705 382 L 746 407 M 780 331 Q 794 340 808 329 M 548 554 h 43 M 598 554 h 43 M 671 554 h 43 M 716 554 h 43" fill="none"',3)
,'transform="translate(210 105) scale(.68)"')+
coloringPart("circle","savanna-sun",'cx="682" cy="89" r="44"',3)
)}
function proJapaneseGarden(){return coloringScene(
coloringPart("rect","japanese-sky",'x="4" y="4" width="792" height="592" rx="28"')+
coloringPart("path","japanese-bank",'d="M 4 409 C 147 368 276 396 397 428 C 533 464 657 428 796 391 L 796 596 L 4 596 Z"')+
coloringPart("path","japanese-pond",'d="M 54 479 C 121 417 266 408 405 426 C 548 444 685 432 748 494 C 690 560 560 582 405 574 C 245 567 108 551 54 479 Z"',2)+
coloringFigure("japanese-pagoda",
coloringPart("path","pagoda-base",'d="M 551 312 H 711 V 470 H 551 Z"')+
coloringPart("path","pagoda-roof-low",'d="M 505 313 C 556 289 663 287 759 314 L 718 349 H 546 Z"')+
coloringPart("path","pagoda-upper",'d="M 577 217 H 686 V 293 H 577 Z"',2)+
coloringPart("path","pagoda-roof-high",'d="M 538 219 C 584 188 652 186 727 220 L 687 250 H 577 Z"',2)+
coloringPart("path","pagoda-top",'d="M 604 148 H 661 V 198 H 604 Z"',3)+
coloringPart("path","pagoda-roof-top",'d="M 575 150 C 607 125 652 125 691 151 L 662 175 H 605 Z"',3)+
coloringPart("path","pagoda-door",'d="M 610 389 C 610 365 620 352 632 352 C 644 352 654 365 654 389 V 470 H 610 Z"',2)+
coloringLine("path",'d="M 588 349 V 470 M 676 349 V 470 M 602 250 V 293 M 660 250 V 293 M 632 126 V 96 M 551 400 H 711" fill="none"',2)
)+
coloringFigure("arched-bridge",
coloringPart("path","bridge-deck",'d="M 75 472 C 139 381 280 361 385 444 L 385 493 C 276 421 151 438 86 521 Z"')+
coloringPart("path","bridge-rail",'d="M 76 450 C 151 354 284 346 391 426 L 385 450 C 282 379 154 392 83 481 Z"',2)+
coloringPart("path","bridge-post-a",'d="M 86 399 H 107 V 506 H 86 Z"',2)+
coloringPart("path","bridge-post-b",'d="M 349 384 H 370 V 485 H 349 Z"',3)+
coloringLine("path",'d="M 109 420 V 479 M 158 382 V 450 M 213 364 V 429 M 270 361 V 425 M 323 375 V 448" fill="none"',3)
)+
coloringFigure("cherry-tree",
coloringPart("path","cherry-trunk",'d="M 42 408 C 69 350 82 286 78 222 C 75 178 60 137 39 103 C 75 118 101 145 116 181 C 133 145 159 122 197 112 C 172 150 160 191 162 232 C 166 302 185 363 216 408 Z"')+
coloringPart("path","cherry-crown",'d="M 7 135 C 3 94 34 68 72 78 C 91 39 137 35 163 68 C 196 40 245 58 252 99 C 289 108 303 150 280 180 C 256 204 220 203 196 183 C 164 211 118 201 101 167 C 68 188 22 174 7 135 Z"')+
coloringFlower(75,102,"cherry-blossom-a",.55,2)+coloringFlower(145,76,"cherry-blossom-b",.52,3)+coloringFlower(212,121,"cherry-blossom-c",.5,3)+
coloringLine("path",'d="M 78 222 C 92 203 103 190 116 181 M 162 232 C 146 212 132 195 116 181" fill="none"',2)
)+
coloringFigure("pond-koi",
coloringPart("path","koi-body",'d="M 429 506 C 464 473 530 474 567 508 C 530 541 465 541 429 506 Z"',3)+
coloringPart("path","koi-tail",'d="M 429 506 L 390 478 L 397 537 Z"',3)+
coloringPart("path","koi-patch",'d="M 477 485 C 492 501 492 522 478 536 C 497 542 518 539 535 530 C 521 510 521 493 536 484 C 516 477 496 478 477 485 Z"',3)+
coloringDot(545,505,4,3)+
coloringLine("path",'d="M 414 550 C 452 534 500 542 538 557 M 236 534 C 275 516 322 520 359 540" fill="none"',3)
)+
coloringPart("path","stone-lantern",'d="M 445 406 L 483 351 L 521 406 L 506 426 H 460 Z"',3)+
coloringPart("path","lantern-post",'d="M 474 423 H 493 V 520 H 474 Z"',3)+
coloringPart("path","lantern-cap",'d="M 453 349 L 483 315 L 513 349 Z"',3)
)}