vector_salad 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/Gemfile +9 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +89 -0
  6. data/Rakefile +2 -0
  7. data/bin/vector_salad +72 -0
  8. data/examples/birthday.png +0 -0
  9. data/examples/birthday.rb +45 -0
  10. data/examples/birthday.svg +630 -0
  11. data/examples/boolean_operations.png +0 -0
  12. data/examples/boolean_operations.rb +23 -0
  13. data/examples/boolean_operations.svg +151 -0
  14. data/examples/bp_logo.png +0 -0
  15. data/examples/bp_logo.rb +18 -0
  16. data/examples/bp_logo.svg +25 -0
  17. data/examples/bunny_card.png +0 -0
  18. data/examples/bunny_card.rb +219 -0
  19. data/examples/bunny_card.svg +134 -0
  20. data/examples/chill.png +0 -0
  21. data/examples/chill.rb +16 -0
  22. data/examples/chill.svg +86 -0
  23. data/examples/circle_line_segments.png +0 -0
  24. data/examples/circle_line_segments.rb +11 -0
  25. data/examples/circle_line_segments.svg +28 -0
  26. data/examples/circles.png +0 -0
  27. data/examples/circles.rb +14 -0
  28. data/examples/circles.svg +11 -0
  29. data/examples/clip_operations.png +0 -0
  30. data/examples/clip_operations.rb +14 -0
  31. data/examples/clip_operations.svg +8 -0
  32. data/examples/cog_menu.png +0 -0
  33. data/examples/cog_menu.rb +32 -0
  34. data/examples/cog_menu.svg +37 -0
  35. data/examples/cubic_bezier_handles.png +0 -0
  36. data/examples/cubic_bezier_handles.rb +21 -0
  37. data/examples/cubic_bezier_handles.svg +14 -0
  38. data/examples/cubic_circle.png +0 -0
  39. data/examples/cubic_circle.rb +26 -0
  40. data/examples/cubic_circle.svg +29 -0
  41. data/examples/face.png +0 -0
  42. data/examples/face.rb +4 -0
  43. data/examples/face.svg +10 -0
  44. data/examples/flower.png +0 -0
  45. data/examples/flower.rb +23 -0
  46. data/examples/flower.svg +207 -0
  47. data/examples/fox.png +0 -0
  48. data/examples/fox.rb +110 -0
  49. data/examples/fox.svg +31 -0
  50. data/examples/fresh_vector_salad_gui.png +0 -0
  51. data/examples/galaxies.png +0 -0
  52. data/examples/galaxies.rb +60 -0
  53. data/examples/galaxies.svg +5806 -0
  54. data/examples/gold_stars.png +0 -0
  55. data/examples/gold_stars.rb +9 -0
  56. data/examples/gold_stars.svg +12 -0
  57. data/examples/paths.png +0 -0
  58. data/examples/paths.rb +87 -0
  59. data/examples/paths.svg +13 -0
  60. data/examples/pepsi_logo.png +0 -0
  61. data/examples/pepsi_logo.rb +21 -0
  62. data/examples/pepsi_logo.svg +10 -0
  63. data/examples/polygons.png +0 -0
  64. data/examples/polygons.rb +9 -0
  65. data/examples/polygons.svg +13 -0
  66. data/examples/quadratic_bezier_handle.png +0 -0
  67. data/examples/quadratic_bezier_handle.rb +18 -0
  68. data/examples/quadratic_bezier_handle.svg +13 -0
  69. data/examples/rects.png +0 -0
  70. data/examples/rects.rb +10 -0
  71. data/examples/rects.svg +11 -0
  72. data/examples/simple_path.png +0 -0
  73. data/examples/simple_path.rb +29 -0
  74. data/examples/simple_path.svg +8 -0
  75. data/examples/space.png +0 -0
  76. data/examples/space.rb +171 -0
  77. data/examples/space.svg +46453 -0
  78. data/examples/spiro_nodes.png +0 -0
  79. data/examples/spiro_nodes.rb +20 -0
  80. data/examples/spiro_nodes.svg +13 -0
  81. data/examples/squares.png +0 -0
  82. data/examples/squares.rb +14 -0
  83. data/examples/squares.svg +11 -0
  84. data/examples/stars.png +0 -0
  85. data/examples/stars.rb +3 -0
  86. data/examples/stars.svg +30006 -0
  87. data/examples/transforms.png +0 -0
  88. data/examples/transforms.rb +58 -0
  89. data/examples/transforms.svg +121 -0
  90. data/examples/triangles.png +0 -0
  91. data/examples/triangles.rb +8 -0
  92. data/examples/triangles.svg +9 -0
  93. data/lib/contracts_contracts.rb +32 -0
  94. data/lib/vector_salad.rb +5 -0
  95. data/lib/vector_salad/canvas.rb +27 -0
  96. data/lib/vector_salad/dsl.rb +41 -0
  97. data/lib/vector_salad/export_with_magic.rb +29 -0
  98. data/lib/vector_salad/exporters/base_exporter.rb +92 -0
  99. data/lib/vector_salad/exporters/svg_exporter.rb +174 -0
  100. data/lib/vector_salad/interpolate.rb +57 -0
  101. data/lib/vector_salad/magic.rb +17 -0
  102. data/lib/vector_salad/mixins/at.rb +28 -0
  103. data/lib/vector_salad/shape_proxy.rb +14 -0
  104. data/lib/vector_salad/standard_shapes/basic_shape.rb +29 -0
  105. data/lib/vector_salad/standard_shapes/circle.rb +64 -0
  106. data/lib/vector_salad/standard_shapes/clip.rb +51 -0
  107. data/lib/vector_salad/standard_shapes/custom.rb +28 -0
  108. data/lib/vector_salad/standard_shapes/difference.rb +28 -0
  109. data/lib/vector_salad/standard_shapes/exclusion.rb +28 -0
  110. data/lib/vector_salad/standard_shapes/flip.rb +24 -0
  111. data/lib/vector_salad/standard_shapes/hexagon.rb +15 -0
  112. data/lib/vector_salad/standard_shapes/intersection.rb +28 -0
  113. data/lib/vector_salad/standard_shapes/iso_tri.rb +39 -0
  114. data/lib/vector_salad/standard_shapes/jitter.rb +33 -0
  115. data/lib/vector_salad/standard_shapes/move.rb +24 -0
  116. data/lib/vector_salad/standard_shapes/multi_path.rb +82 -0
  117. data/lib/vector_salad/standard_shapes/n.rb +112 -0
  118. data/lib/vector_salad/standard_shapes/oval.rb +51 -0
  119. data/lib/vector_salad/standard_shapes/path.rb +249 -0
  120. data/lib/vector_salad/standard_shapes/pentagon.rb +15 -0
  121. data/lib/vector_salad/standard_shapes/polygon.rb +37 -0
  122. data/lib/vector_salad/standard_shapes/rect.rb +34 -0
  123. data/lib/vector_salad/standard_shapes/rotate.rb +24 -0
  124. data/lib/vector_salad/standard_shapes/scale.rb +34 -0
  125. data/lib/vector_salad/standard_shapes/square.rb +34 -0
  126. data/lib/vector_salad/standard_shapes/transform.rb +20 -0
  127. data/lib/vector_salad/standard_shapes/triangle.rb +15 -0
  128. data/lib/vector_salad/standard_shapes/union.rb +28 -0
  129. data/lib/vector_salad/version.rb +3 -0
  130. data/vector_salad.gemspec +34 -0
  131. metadata +262 -0
@@ -0,0 +1,134 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="610.0"
4
+ height="805.0">
5
+
6
+ <rect x="0" y="0" width="600" height="800" fill="skyblue"/>
7
+ <circle cx="0" cy="0" r="200" fill="yellow"/>
8
+ <path d="M 0.0 800.0 L 8.0 800.0 C 5.055573334185301 769.8211674457687, 0.7160745302122233 739.7784834182628, -5.0 710.0 C -10.885137582000734 679.3407650698883, -18.22953121125987 648.9616823306801, -27.0 619.0 C -22.19301149101285 649.311523754757, -17.526278215401632 679.6452900462299, -13.0 710.0 C -8.529597663215377 739.9799879397631, -4.1962039963728275 769.9804056332885, 0.0 800.0 Z" fill="green"/>
9
+ <path d="M 8.0 800.0 L 16.0 800.0 C 22.324375257390756 759.1760203157309, 27.32786269383866 718.1474233368581, 31.0 677.0 C 34.651022836855056 636.0891707593433, 36.98596497742545 595.0609017178922, 38.0 554.0 L 23.0 677.0 L 8.0 800.0 Z" fill="green"/>
10
+ <path d="M 16.0 800.0 L 24.0 800.0 C 28.996887931964086 746.1013094943895, 32.6650396542652 692.0794386750458, 35.0 638.0 C 37.344375237290755 583.7025053517712, 38.34478352533955 529.3469883677865, 38.0 475.0 C 34.34463314151044 529.3340951101676, 30.677966369116874 583.6674300101815, 27.0 638.0 C 23.34449523217239 692.000757134111, 19.677828461066238 746.00075867222, 16.0 800.0 Z" fill="green"/>
11
+ <path d="M 24.0 800.0 L 32.0 800.0 C 34.665951644351935 753.0504171852382, 36.0 706.0252126486441, 36.0 659.0 C 36.0 611.9747873513559, 34.66595164435195 564.9495828147618, 32.0 518.0 L 28.0 659.0 L 24.0 800.0 Z" fill="green"/>
12
+ <path d="M 32.0 800.0 L 40.0 800.0 C 39.82665919405873 742.6362262725017, 38.15923908029582 685.2769743590577, 35.0 628.0 C 31.8316492539291 570.5578312274448, 27.162860748257017 513.1984295863307, 21.0 456.0 C 23.166505793107113 513.3273635974896, 25.166517039483807 570.6610193269549, 27.0 628.0 C 28.83314247702382 685.32833264587, 30.499818512190586 742.6619882556064, 32.0 800.0 Z" fill="green"/>
13
+ <path d="M 40.0 800.0 L 48.0 800.0 C 49.83012391827985 756.6954195935475, 50.16372245366152 713.3276099939291, 49.0 670.0 C 47.83410975890755 626.591679138921, 45.165313563547045 583.2237409643126, 41.0 540.0 C 41.16666091409857 583.3331196726589, 41.166660914098564 626.6668803273411, 41.0 670.0 C 40.833334155153786 713.3344017049765, 40.49999753453865 756.6681623849443, 40.0 800.0 Z" fill="green"/>
14
+ <path d="M 48.0 800.0 L 56.0 800.0 C 57.14260596593045 757.3388206128611, 56.80900674171169 714.6381199128605, 55.0 672.0 C 53.17143861939124 628.9009790750422, 49.835388578325166 585.8659335452899, 45.0 543.0 C 45.83265541795181 585.9972128874584, 46.49932870763207 628.9976400718349, 47.0 672.0 C 47.49674556306459 714.665181369985, 47.83008215617767 757.3322652884584, 48.0 800.0 Z" fill="green"/>
15
+ <path d="M 56.0 800.0 L 64.0 800.0 C 70.16001669429782 756.844886954875, 74.83038765660365 713.4771565906066, 78.0 670.0 C 81.15371447317999 626.7409124089965, 82.82169086361048 583.3735262578032, 83.0 540.0 C 78.83151014478861 583.3496066182652, 74.49813501682551 626.6833578978961, 70.0 670.0 C 65.49830876307264 713.3508881869393, 60.831597015607414 756.6846401276878, 56.0 800.0 Z" fill="green"/>
16
+ <path d="M 64.0 800.0 L 72.0 800.0 C 79.4907294351994 747.5174423186863, 85.49394120499848 694.8225834504501, 90.0 642.0 C 94.48435072766055 589.4318908586597, 97.48594117621904 536.7373029839664, 99.0 484.0 C 93.49794108905928 536.6842041893331, 87.83123752732884 589.3512137630631, 82.0 642.0 C 76.16472288707155 694.6852586457048, 70.16468376756612 747.3522686946969, 64.0 800.0 Z" fill="green"/>
17
+ <path d="M 72.0 800.0 L 80.0 800.0 C 77.11571426726496 748.5580552505312, 72.78008250484241 697.1974943726026, 67.0 646.0 C 61.14488114222611 594.1378657621825, 53.80755650867275 542.4430785712383, 45.0 491.0 C 49.81862306477406 542.6527913580495, 54.48531664739549 594.3197560227868, 59.0 646.0 C 63.48325947282896 697.320530206241, 67.81661745283294 748.6541555078265, 72.0 800.0 Z" fill="green"/>
18
+ <path d="M 80.0 800.0 L 88.0 800.0 C 90.49899751641016 742.0387667942169, 91.49944297052495 684.0129304555578, 91.0 626.0 C 90.50033439514362 567.9612093947393, 88.49944269242965 509.9353500160341, 85.0 452.0 C 84.49996009904997 510.00175566655287, 83.83328976427879 568.0020747916464, 83.0 626.0 C 82.16664143967922 684.0027134919354, 81.1666359366139 742.0030326697248, 80.0 800.0 Z" fill="green"/>
19
+ <path d="M 88.0 800.0 L 96.0 800.0 C 101.99330331440838 757.1578116799025, 106.66293810021105 714.1304625821492, 110.0 671.0 C 113.32116318042186 628.0750233037462, 115.32242313876021 585.0479341994716, 116.0 542.0 L 102.0 671.0 L 88.0 800.0 Z" fill="green"/>
20
+ <path d="M 96.0 800.0 L 104.0 800.0 C 106.99180184557673 749.7221944033771, 108.65923913011282 699.3655884103874, 109.0 649.0 C 109.34289693467667 598.3186941187608, 108.3424287487582 547.628306032224, 106.0 497.0 C 104.33886427313112 547.666848404, 102.6721975932238 598.3335154731827, 101.0 649.0 C 99.33879177620234 699.3335138789436, 97.67212509646848 749.6668476069065, 96.0 800.0 Z" fill="green"/>
21
+ <path d="M 104.0 800.0 L 112.0 800.0 C 114.31782756528118 764.3865377938355, 115.31873840202995 728.687384616463, 115.0 693.0 C 114.67806317545478 656.9545056178429, 113.00984782546392 620.9210540580405, 110.0 585.0 C 109.0046909668459 621.0001301007263, 108.0046909555264 657.0001305082285, 107.0 693.0 C 106.00460453259765 728.6667955674093, 105.00460452148664 764.3334626303688, 104.0 800.0 Z" fill="green"/>
22
+ <path d="M 112.0 800.0 L 120.0 800.0 C 119.32744901805879 741.2980982662392, 117.32676670580555 682.6114171068109, 114.0 624.0 C 110.66466098455606 565.2375548048932, 105.99639404036063 506.5507703635794, 100.0 448.0 L 106.0 624.0 L 112.0 800.0 Z" fill="green"/>
23
+ <path d="M 120.0 800.0 L 128.0 800.0 C 129.4694481314345 768.0224956397799, 129.46944813143446 735.9775043602201, 128.0 704.0 C 126.50885225560569 671.5502779049757, 123.50450881119097 639.1701318929504, 119.0 607.0 C 119.50085907580973 639.3313168936487, 119.83419837490436 671.6652289058285, 120.0 704.0 C 120.16408359558416 735.9997195471507, 120.16408359558415 768.0002804528493, 120.0 800.0 Z" fill="green"/>
24
+ <path d="M 128.0 800.0 L 136.0 800.0 C 141.4972703495491 746.4589529903418, 145.49934901803215 692.7643975215276, 148.0 639.0 C 150.49416501127396 585.3750518895312, 151.4946819860169 531.6806409116606, 151.0 478.0 C 147.4991285234888 531.677822782191, 143.83243853008724 585.3448308674322, 140.0 639.0 C 136.16586945484315 692.6788577981581, 132.1658439850211 746.3458661849373, 128.0 800.0 Z" fill="green"/>
25
+ <path d="M 136.0 800.0 L 144.0 800.0 C 144.494113718309 748.9852952009325, 143.49354172064116 697.9561233198724, 141.0 647.0 C 138.4992791659055 595.8971697742729, 134.4969779808798 544.8678296651949, 129.0 494.0 C 130.49991994120572 544.9954632804048, 131.83326275899296 595.9958260607665, 133.0 647.0 C 134.16656290162686 697.9965526550582, 135.16657001284162 748.9969153270112, 136.0 800.0 Z" fill="green"/>
26
+ <path d="M 144.0 800.0 L 152.0 800.0 C 149.4465572502664 752.5592391620695, 145.44407076452632 705.1964824141452, 140.0 658.0 C 134.4784458050757 610.1317876399484, 127.47396970332335 562.4346408518252, 119.0 515.0 C 123.48530897516645 562.6526878181546, 127.8186716804965 610.3196775767851, 132.0 658.0 C 136.1497751770413 705.3205171433839, 140.14980188200286 752.6541664854293, 144.0 800.0 Z" fill="green"/>
27
+ <path d="M 152.0 800.0 L 160.0 800.0 C 159.64041280088085 751.3002792045329, 157.9729450965248 702.6102222373368, 155.0 654.0 C 151.99676323742165 604.8944828375994, 147.66130454610226 555.8704499434494, 142.0 507.0 C 143.66094610247546 556.0001943541383, 145.32761278428615 605.0001947993733, 147.0 654.0 C 148.6610236237332 702.6668597031972, 150.32769030533882 751.3335268060811, 152.0 800.0 Z" fill="green"/>
28
+ <path d="M 160.0 800.0 L 168.0 800.0 C 169.4952553214481 759.3516611203055, 169.4952553214481 718.6483388796945, 168.0 678.0 C 166.50067970591618 637.2411553204844, 163.49796088225148 596.5376334885852, 159.0 556.0 C 159.49999720060154 596.6650728696882, 159.83333426646615 637.332194905172, 160.0 678.0 C 160.1666601349626 718.6664389975545, 160.1666601349626 759.3335610024455, 160.0 800.0 Z" fill="green"/>
29
+ <path d="M 168.0 800.0 L 176.0 800.0 C 180.99804256170876 744.431700563103, 184.66610902257656 688.7437824753828, 187.0 633.0 C 189.32921929908065 577.3677981527848, 190.32959953428414 521.6799650597907, 190.0 466.0 L 179.0 633.0 L 168.0 800.0 Z" fill="green"/>
30
+ <path d="M 176.0 800.0 L 184.0 800.0 C 185.30656057012973 769.0183580937795, 185.3065605701297 737.9816419062205, 184.0 707.0 C 182.67460497318828 675.5717485712207, 180.0046881992912 644.20022647793, 176.0 613.0 L 176.0 707.0 L 176.0 800.0 Z" fill="green"/>
31
+ <path d="M 184.0 800.0 L 192.0 800.0 C 195.9911506977547 767.1249050957176, 198.6606876853172 734.0893848746316, 200.0 701.0 C 201.34845021682298 667.6848518306166, 201.34845021682298 634.3151481693834, 200.0 601.0 C 197.34678179372833 634.3344073900181, 194.68011483769013 667.6677443404953, 192.0 701.0 C 189.34651502029294 734.0010634202822, 186.67984806997663 767.0010669304465, 184.0 800.0 Z" fill="green"/>
32
+ <path d="M 192.0 800.0 L 200.0 800.0 C 198.12173750491033 768.8664961038306, 194.78352396575076 737.8211101896467, 190.0 707.0 C 185.14559633486064 675.7221990859614, 178.80271374623055 644.6754579942458, 171.0 614.0 C 174.83129821305346 644.980231813946, 178.49803385057996 675.9808149312156, 182.0 707.0 C 185.4977708212037 737.9820243262717, 188.8311667051783 768.9826060472357, 192.0 800.0 Z" fill="green"/>
33
+ <path d="M 200.0 800.0 L 208.0 800.0 C 214.49370892165388 750.8333185638796, 219.49677121135886 701.4697706387906, 223.0 652.0 C 226.48823190663015 602.7420032298724, 228.48944635690253 553.378713456487, 229.0 504.0 C 224.49837811385737 553.3487600169742, 219.83167663375372 602.68246137807, 215.0 652.0 C 210.1651542891199 701.3498857956799, 205.16511694006277 750.6835876397103, 200.0 800.0 Z" fill="green"/>
34
+ <path d="M 208.0 800.0 L 216.0 800.0 C 214.4882546831839 742.268736321734, 211.48692372135267 684.5764856109781, 207.0 627.0 C 202.49494287173724 569.1908253782706, 196.4922593878925 511.4983674502073, 189.0 454.0 C 192.49951554099127 511.65690057436, 195.83286733107806 569.3238865428614, 199.0 627.0 C 202.16613055082183 684.657864055146, 205.16614715138974 742.3248498216176, 208.0 800.0 Z" fill="green"/>
35
+ <path d="M 216.0 800.0 L 224.0 800.0 C 223.44582643418164 766.6008627741352, 221.44332196704102 733.2257883217915, 218.0 700.0 C 214.4903690277053 666.1343734657278, 209.48386436017964 632.4239087043883, 203.0 599.0 C 205.49015279944757 632.6555532796242, 207.82351989098566 666.3227070289596, 210.0 700.0 C 212.153639774057 733.3238780012789, 214.153668105537 766.6576835259455, 216.0 800.0 Z" fill="green"/>
36
+ <path d="M 224.0 800.0 L 232.0 800.0 C 232.13219560955838 759.3028944964044, 230.79770867747806 718.6010430679551, 228.0 678.0 C 225.16515580807044 636.8600371246562, 220.82797307910076 595.8236159197891, 215.0 555.0 C 216.82832263271285 595.9932157846416, 218.49500657446126 636.993640751652, 220.0 678.0 C 221.49232727518248 718.6612463043382, 222.82567419693817 759.3283274178874, 224.0 800.0 Z" fill="green"/>
37
+ <path d="M 232.0 800.0 L 240.0 800.0 C 240.6606950188828 760.6591000037306, 239.9935223622263 721.2959132609964, 238.0 682.0 C 235.99961655183333 642.5688423880508, 232.6637358226429 603.2054497836037, 228.0 564.0 L 230.0 682.0 L 232.0 800.0 Z" fill="green"/>
38
+ <path d="M 240.0 800.0 L 248.0 800.0 C 253.8269773623072 760.5155299499579, 258.16441848699037 720.8112611932427, 261.0 681.0 C 263.8203961379586 641.401939848484, 265.1549799045765 601.6980727916012, 265.0 562.0 C 261.16479789433635 601.683054463702, 257.1647518792901 641.3501774462436, 253.0 681.0 C 248.83161044348046 720.6844544504058, 244.49822717339387 760.3515782304291, 240.0 800.0 Z" fill="green"/>
39
+ <path d="M 248.0 800.0 L 256.0 800.0 C 256.6476165971727 749.9939917135611, 255.98064290534398 699.9709648264054, 254.0 650.0 C 252.001958848139 599.590083173515, 248.66706329975057 549.2331603928499, 244.0 499.0 C 244.66443745619932 549.3333628263842, 245.33110412373776 599.6666962255372, 246.0 650.0 C 246.66446688181682 700.0000292981986, 247.33113354934378 750.0000293627193, 248.0 800.0 Z" fill="green"/>
40
+ <path d="M 256.0 800.0 L 264.0 800.0 C 266.9918588200207 749.3884983640642, 268.6592860573581 698.6987103490076, 269.0 648.0 C 269.342836456824 596.9854565773794, 268.34237441078005 545.9618922291381, 266.0 495.0 C 264.33882784525485 546.0001793616848, 262.67216116569165 597.00017975632, 261.0 648.0 C 259.3387562944738 698.6668448598604, 257.6720896150784 749.3335119134802, 256.0 800.0 Z" fill="green"/>
41
+ <path d="M 264.0 800.0 L 272.0 800.0 C 278.3286834216041 743.1269691757121, 283.3304971843028 686.1062922809464, 287.0 629.0 C 290.65852547600184 572.06454153513, 292.99270017516375 515.0439881698884, 294.0 458.0 L 279.0 629.0 L 264.0 800.0 Z" fill="green"/>
42
+ <path d="M 272.0 800.0 L 280.0 800.0 C 277.3188809174099 743.9161896252178, 273.3174033979128 687.8955043522592, 268.0 632.0 C 262.658653240542 575.8528077148708, 255.98950181389424 519.8319357310297, 248.0 464.0 L 260.0 632.0 L 272.0 800.0 Z" fill="green"/>
43
+ <path d="M 280.0 800.0 L 288.0 800.0 C 288.79344282301884 768.9915221775514, 288.1257907032184 737.9456986068305, 286.0 707.0 C 283.8371615512318 675.5149875434521, 280.16488430044956 644.1337092185852, 275.0 613.0 C 276.1638497047498 644.3278181607327, 277.16386793682005 675.6617227656002, 278.0 707.0 C 278.8270071568557 737.9962752269191, 279.4936857143885 768.9968281521939, 280.0 800.0 Z" fill="green"/>
44
+ <path d="M 288.0 800.0 L 296.0 800.0 C 301.49622665003875 742.1161312284785, 305.4980034657822 684.0903674001988, 308.0 626.0 C 310.5107836521963 567.7056167649351, 311.51123098187713 509.34618920022046, 311.0 451.0 C 307.51120716583335 509.34433248812724, 303.84451777355986 567.678027365206, 300.0 626.0 C 296.17591832558134 684.0119536193873, 292.1758937968763 742.0123092856097, 288.0 800.0 Z" fill="green"/>
45
+ <path d="M 296.0 800.0 L 304.0 800.0 C 304.97161588126295 767.3373929145392, 304.63792798506176 734.6359790868248, 303.0 702.0 C 301.33860891478673 668.896514861114, 298.3353257609008 635.860400168369, 294.0 603.0 C 294.3316241969274 636.0000172344945, 294.66495753085684 669.0000172935077, 295.0 702.0 C 295.3316585487994 734.6666837276804, 295.66499188271683 767.3333504515899, 296.0 800.0 Z" fill="green"/>
46
+ <path d="M 304.0 800.0 L 312.0 800.0 C 311.9896959419764 762.9681009680892, 310.6552269519621 725.9365864951924, 308.0 689.0 C 305.33102831327426 651.872211926323, 301.32758597665594 614.8403703126035, 296.0 578.0 L 300.0 689.0 L 304.0 800.0 Z" fill="green"/>
47
+ <path d="M 312.0 800.0 L 320.0 800.0 C 321.83136310643806 744.6892121976608, 322.1648593405496 689.3288373351523, 321.0 634.0 C 319.833809560276 578.6079377181637, 317.1658367071566 523.2475010159359, 313.0 468.0 C 313.1666631385828 523.3331660043059, 313.1666631385828 578.6668339956941, 313.0 634.0 C 312.8333338373547 689.3341700112614, 312.49999848793584 744.6678380147945, 312.0 800.0 Z" fill="green"/>
48
+ <path d="M 320.0 800.0 L 328.0 800.0 C 325.2979273337132 741.2544451172141, 321.2966233733269 682.568653698215, 316.0 624.0 C 310.6517933013014 564.8609515979608, 303.9829108292852 505.8413417206169, 296.0 447.0 C 299.9886567055337 506.000768306627, 303.98865680410245 565.0007697605164, 308.0 624.0 C 311.98878422389623 682.6674306606208, 315.98878432135945 741.3340987567482, 320.0 800.0 Z" fill="green"/>
49
+ <path d="M 328.0 800.0 L 336.0 800.0 C 340.6648271642976 750.4346623579873, 343.99975960651733 700.744168968913, 346.0 651.0 C 347.9959294624101 601.363039986763, 348.6629145737099 551.6726491949298, 348.0 502.0 L 338.0 651.0 L 328.0 800.0 Z" fill="green"/>
50
+ <path d="M 336.0 800.0 L 344.0 800.0 C 346.65412077696215 761.727808190213, 347.98851029966687 723.3641094124524, 348.0 685.0 C 348.01158953061866 646.3025572641803, 346.67718157291836 607.6047264908701, 344.0 569.0 C 342.67248186886485 607.6668668990126, 341.33914851542664 646.3335341487216, 340.0 685.0 C 338.6723820982031 723.3335318465557, 337.3390487451096 761.6668657479943, 336.0 800.0 Z" fill="green"/>
51
+ <path d="M 344.0 800.0 L 352.0 800.0 C 349.77084914704204 759.5531670202424, 346.10108379671897 719.1857481666884, 341.0 679.0 C 335.8094710476669 638.1096132424788, 329.13697108290444 597.4073634574276, 321.0 557.0 C 325.1508217159168 597.6516434415499, 329.1508584040295 638.3186831040291, 333.0 679.0 C 336.81492388330304 719.3196722077273, 340.481623585462 759.6533689314758, 344.0 800.0 Z" fill="green"/>
52
+ <path d="M 352.0 800.0 L 360.0 800.0 C 366.6535234669406 763.2063823098854, 371.9913994269978 726.1748678369886, 376.0 689.0 C 379.9778723901861 652.1100984783761, 382.6467756789752 615.0790653464283, 384.0 578.0 L 368.0 689.0 L 352.0 800.0 Z" fill="green"/>
53
+ <path d="M 360.0 800.0 L 368.0 800.0 C 364.95542491972947 747.9033098973374, 360.6203194895532 695.8820447352224, 355.0 644.0 C 349.31297625776926 591.5021979171967, 342.31004528426 539.1469520676275, 334.0 487.0 C 338.3194957569082 539.3344778919638, 342.65282929221195 591.6678136644784, 347.0 644.0 C 351.31967087212604 696.0011373335853, 355.6530044048826 748.0011397266638, 360.0 800.0 Z" fill="green"/>
54
+ <path d="M 368.0 800.0 L 376.0 800.0 C 378.32217231669296 751.7060884076425, 379.32267140450074 703.3486324969339, 379.0 655.0 C 378.67498177166283 606.2997226977916, 377.0074711476359 557.6084124762051, 374.0 509.0 C 373.0034586518566 557.6667376528876, 372.00345864848947 606.3334044834208, 371.0 655.0 C 370.00341144528375 703.3334038346638, 369.00341144196256 751.6667373285205, 368.0 800.0 Z" fill="green"/>
55
+ <path d="M 376.0 800.0 L 384.0 800.0 C 381.10586712502186 754.5444353374585, 376.76962783000386 709.1807011741935, 371.0 664.0 C 365.140166143258 618.1129150419213, 357.8017600403454 572.4146588556023, 349.0 527.0 C 353.81651996887126 572.6511875291785, 358.4832201434177 618.3181820943832, 363.0 664.0 C 367.4809127255547 709.3190648380724, 371.81427668115816 754.6527185274624, 376.0 800.0 Z" fill="green"/>
56
+ <path d="M 384.0 800.0 L 392.0 800.0 C 395.4984098953765 765.7758649620447, 397.5009541490749 731.3988552735543, 398.0 697.0 C 398.4984121563327 662.6448248182271, 397.4971432585668 628.2679259949311, 395.0 594.0 C 393.49949489321256 628.3411307834691, 391.83280220582424 662.6750001436686, 390.0 697.0 C 388.16625009007845 731.3427486035235, 386.1662188329126 765.676618518204, 384.0 800.0 Z" fill="green"/>
57
+ <path d="M 392.0 800.0 L 400.0 800.0 C 403.99782548088547 767.1256253175334, 406.6673915063715 734.0897457521439, 408.0 701.0 C 409.3282764125623 668.0178233214028, 409.3282764125622 634.9821766785972, 408.0 602.0 L 400.0 701.0 L 392.0 800.0 Z" fill="green"/>
58
+ <path d="M 400.0 800.0 L 408.0 800.0 C 414.98931962756643 755.5144321268364, 420.6593073516077 710.8215877138052, 425.0 666.0 C 429.31587173232674 621.4347107520581, 432.31760988796947 576.7421648791559, 434.0 532.0 L 417.0 666.0 L 400.0 800.0 Z" fill="green"/>
59
+ <path d="M 408.0 800.0 L 416.0 800.0 C 414.4297387926129 766.5585469273484, 411.42606830817385 733.1844304335808, 407.0 700.0 C 402.4774517235176 666.0922113682063, 396.4697871865449 632.3825381329706, 389.0 599.0 C 392.48444537452104 632.6514767065172, 395.8178234910079 666.3185956830345, 399.0 700.0 C 402.1480117743557 733.3197913651325, 405.1480512183906 766.6535629655203, 408.0 800.0 Z" fill="green"/>
60
+ <path d="M 416.0 800.0 L 424.0 800.0 C 422.121602171469 751.5809752174599, 418.7862578607032 703.2184827113558, 414.0 655.0 C 409.1515933892366 606.1554084333497, 402.8143393220108 557.4586140220358, 395.0 509.0 C 398.8215883154193 557.6548291394769, 402.48827975693024 606.321824635894, 406.0 655.0 C 409.48607121823983 703.3226380085739, 412.8194267463576 751.6562931662814, 416.0 800.0 Z" fill="green"/>
61
+ <path d="M 424.0 800.0 L 432.0 800.0 C 435.9988471957447 754.7581405501041, 438.6670509347518 709.3986769869839, 440.0 664.0 C 441.33064823119787 618.679686713908, 441.33064823119787 573.320313286092, 440.0 528.0 L 432.0 664.0 L 424.0 800.0 Z" fill="green"/>
62
+ <path d="M 432.0 800.0 L 440.0 800.0 C 441.8191277839934 744.021986868622, 442.1526175743314 687.9957020918442, 441.0 632.0 C 439.8392418760929 575.6088191309286, 437.17130581006074 519.248669735999, 433.0 463.0 C 433.1681527643281 519.3331660234579, 433.1681527643281 575.6668339765421, 433.0 632.0 C 432.83283926411946 688.000824753547, 432.49950397408094 744.0011534800137, 432.0 800.0 Z" fill="green"/>
63
+ <path d="M 440.0 800.0 L 448.0 800.0 C 449.4798646978256 754.6827707484492, 449.4798646978256 709.3172292515508, 448.0 664.0 C 446.5060355748185 618.2510011563288, 443.50386334062074 572.5512682579854, 439.0 527.0 C 439.50060826163207 572.6652414269254, 439.83394457662934 618.3323165815544, 440.0 664.0 C 440.1648389434103 709.3331335399421, 440.1648389434103 754.6668664600579, 440.0 800.0 Z" fill="green"/>
64
+ <path d="M 448.0 800.0 L 456.0 800.0 C 452.57957715203423 765.8444100445704, 447.9087441962899 731.8140556527185, 442.0 698.0 C 435.9553484167658 663.4081851833905, 428.61516338849975 629.042773460145, 420.0 595.0 C 424.64410160657155 629.3363953943351, 429.3107696170261 663.6697386141079, 434.0 698.0 C 438.6445336816373 732.0030329678676, 443.31120166659656 766.0030425725708, 448.0 800.0 Z" fill="green"/>
65
+ <path d="M 456.0 800.0 L 464.0 800.0 C 460.6380206507942 755.8746381450785, 455.9686241309689 711.848899529583, 450.0 668.0 C 443.98278042504256 623.7940907652836, 436.6450871808942 579.7679313003936, 428.0 536.0 L 442.0 668.0 L 456.0 800.0 Z" fill="green"/>
66
+ <path d="M 464.0 800.0 L 472.0 800.0 C 469.8140951080245 749.2406542666927, 466.14534337997446 698.5451758427284, 461.0 648.0 C 455.82383474821125 597.1520461275842, 449.15333150390046 546.4562214708221, 441.0 496.0 C 445.1657442333421 546.6533997064688, 449.1657727747908 597.3204278981523, 453.0 648.0 C 456.83233008646465 698.6544963371256, 460.499022890242 749.3215241711391, 464.0 800.0 Z" fill="green"/>
67
+ <path d="M 472.0 800.0 L 480.0 800.0 C 483.165121211778 763.7560745743903, 484.8336803605682 727.3814851307633, 485.0 691.0 C 485.166256729565 654.6322760485482, 483.8314105557666 618.2577178125406, 481.0 582.0 C 479.83302645413266 618.3391840614597, 478.49967448767563 654.673025147414, 477.0 691.0 C 475.499758368797 727.3407129062936, 473.83306839310575 763.6745543763625, 472.0 800.0 Z" fill="green"/>
68
+ <path d="M 480.0 800.0 L 488.0 800.0 C 495.32600177130007 741.8132252441483, 501.32807194773005 683.4597651955233, 506.0 625.0 C 510.65498740361056 566.7522128854333, 513.9894625091694 508.39889853815407, 516.0 450.0 L 498.0 625.0 L 480.0 800.0 Z" fill="green"/>
69
+ <path d="M 488.0 800.0 L 496.0 800.0 C 502.49045125448595 760.2051680630559, 507.49509412371555 720.1680251092192, 511.0 680.0 C 514.4821746966797 640.0924859074395, 516.4840078311042 600.0558232189497, 517.0 560.0 C 512.4975453819095 600.0189303728718, 507.8308262988142 640.019379656546, 503.0 680.0 C 498.16437700233007 720.0203185201199, 493.16432073028784 760.0207686964574, 488.0 800.0 Z" fill="green"/>
70
+ <path d="M 496.0 800.0 L 504.0 800.0 C 502.4645726097688 745.2660667219436, 499.46313843525127 690.5732662085126, 495.0 636.0 C 490.489781810452 580.8510635537073, 484.486852625284 525.824212689667, 477.0 471.0 C 480.4908237451064 525.9903042342646, 483.8241753014799 580.9906049144271, 487.0 636.0 C 490.1555368415048 690.657983138145, 493.1555530333672 745.3249448565266, 496.0 800.0 Z" fill="green"/>
71
+ <path d="M 504.0 800.0 L 512.0 800.0 C 510.3231663038105 744.272530490812, 507.32203725137583 688.5849136289684, 503.0 633.0 C 498.661918979786 577.2087504573676, 492.99310379534245 521.5209777631283, 486.0 466.0 L 495.0 633.0 L 504.0 800.0 Z" fill="green"/>
72
+ <path d="M 512.0 800.0 L 520.0 800.0 C 517.2988998950689 763.8714515609208, 513.2954373598651 727.8402887440865, 508.0 692.0 C 502.6474422013643 655.7731118346372, 495.97487946208014 619.7412730425027, 488.0 584.0 L 500.0 692.0 L 512.0 800.0 Z" fill="green"/>
73
+ <path d="M 520.0 800.0 L 528.0 800.0 C 528.3158138170185 741.6540040709153, 527.315474686537 683.3008881261666, 525.0 625.0 C 522.6670899881113 566.2601111977804, 518.9991610452895 507.57324811263214, 514.0 449.0 C 514.9971355557398 507.66671544578804, 515.997135557329 566.3333822056937, 517.0 625.0 C 517.9971680090557 683.3333818359065, 518.997168010627 741.666715260899, 520.0 800.0 Z" fill="green"/>
74
+ <path d="M 528.0 800.0 L 536.0 800.0 C 533.111811851099 766.8316134492432, 528.7729587493915 733.7895782900864, 523.0 701.0 C 517.1364937072922 667.6961246415592, 509.793523863122 634.6527603427933, 501.0 602.0 C 505.83036180559213 634.9765749823738, 510.49710506067544 667.9771165718914, 515.0 701.0 C 519.496810045826 733.978258640859, 523.8302143048971 766.9787987676318, 528.0 800.0 Z" fill="green"/>
75
+ <path d="M 536.0 800.0 L 544.0 800.0 C 545.4821775842253 749.6812161858726, 545.4821775842253 699.3187838141274, 544.0 649.0 C 542.5053899397856 598.2591432317042, 539.5036263403813 547.5626913306543, 535.0 497.0 C 535.5005482376572 547.6653826050625, 535.8338839914588 598.3324171829038, 536.0 649.0 C 536.1650195649273 699.3331529924305, 536.1650195649273 749.6668470075695, 536.0 800.0 Z" fill="green"/>
76
+ <path d="M 544.0 800.0 L 552.0 800.0 C 550.6358439745483 747.61112199976, 547.9680769494142 695.2561941315031, 544.0 643.0 C 539.9914176372638 590.2103840702517, 534.6558384267375 537.5215393663051, 528.0 485.0 C 530.6581691074825 537.6670964646428, 533.3248358204291 590.3337640453364, 536.0 643.0 C 538.6582761940389 695.3337604237702, 541.3249429064028 747.6670946539143, 544.0 800.0 Z" fill="green"/>
77
+ <path d="M 552.0 800.0 L 560.0 800.0 C 565.1624188019448 762.4989778190159, 568.8329504937992 724.7926068026937, 571.0 687.0 C 573.1571869827605 649.3793922538088, 573.8245499987207 611.6733818520581, 573.0 574.0 C 569.8318595969594 611.6810421884948, 566.4984835325104 649.348191716768, 563.0 687.0 C 559.4986631502913 724.6825166033152, 555.831949402694 762.3496669195417, 552.0 800.0 Z" fill="green"/>
78
+ <path d="M 560.0 800.0 L 568.0 800.0 C 566.4828734647726 752.255424435432, 563.4809402938961 704.5580418315049, 559.0 657.0 C 554.4926101595769 609.1612383736191, 548.4886980365906 561.4634920632269, 541.0 514.0 C 544.4992919042321 561.6548675956219, 547.8326521794609 609.3219195313926, 551.0 657.0 C 554.1658831806802 704.6560332477122, 557.1659074059661 752.323084827254, 560.0 800.0 Z" fill="green"/>
79
+ <path d="M 568.0 800.0 L 576.0 800.0 C 573.0891950334368 761.523632338274, 568.7518941066979 723.1552010632761, 563.0 685.0 C 557.1319855323303 646.0745142899224, 549.7916639447363 607.371000464427, 541.0 569.0 C 545.8131735713924 607.6487970093388, 550.4798849157876 646.3158338628982, 555.0 685.0 C 559.4771998459183 723.3168878317816, 563.8105738816846 761.650581225098, 568.0 800.0 Z" fill="green"/>
80
+ <path d="M 576.0 800.0 L 584.0 800.0 C 590.1539979636378 768.9123573877135, 594.8277089293947 737.5317266176318, 598.0 706.0 C 601.1420951140316 674.7684131319843, 602.8112299282019 643.3886786255813, 603.0 612.0 C 598.8298807272375 643.3556168167049, 594.496469046418 674.6895166626305, 590.0 706.0 C 585.4967949793094 737.3573882772337, 580.830043685442 768.6912898217718, 576.0 800.0 Z" fill="green"/>
81
+ <path d="M 584.0 800.0 L 592.0 800.0 C 597.6591899735014 767.1922308648234, 601.9972036179358 734.1565884956684, 605.0 701.0 C 608.0110720159987 667.75203275133, 609.6795487392436 634.3824982864321, 610.0 601.0 C 605.6882917704313 634.3361398416068, 601.354957221289 667.6694825273169, 597.0 701.0 C 592.6878650065722 734.002779003296, 588.3545304812225 767.0027880809598, 584.0 800.0 Z" fill="green"/>
82
+ <path d="M 592.0 800.0 L 600.0 800.0 C 602.3321307992493 758.0458173381724, 603.3328018444663 716.017633439059, 603.0 674.0 C 602.6670305358472 631.9612038700938, 600.9992443335259 589.9329915715978, 598.0 548.0 L 595.0 674.0 L 592.0 800.0 Z" fill="green"/>
83
+ <path d="M 200.0 409.0 L 200.0 244.0 C 200.0 230.19176133042762, 199.29972644087232 216.05032287883216, 203.46448407559444 202.88513207125564 C 205.54686289304456 196.30253666744866, 209.03534926486037 190.05734642171515, 214.1688763314286 185.44066323501096 C 219.30240339799687 180.82398004830677, 226.0958806651691 177.9999999999207, 233.0 178.0 C 239.9041193347862 178.0, 246.69759660188197 180.8239800484458, 251.83112366836394 185.44066323517904 C 256.9646507348459 190.05734642191226, 260.4531371065675 196.30253666764537, 262.5355159239286 202.88513207143362 C 266.70027355879324 216.05032287891686, 265.99999999983595 230.19176133047358, 266.0 244.0 L 266.0 277.0 C 266.0 290.8082386695724, 265.2997264408723 304.94967712116784, 269.46448407559444 318.1148679287444 C 271.5468628930446 324.69746333255137, 275.03534926486043 330.9426535782849, 280.16887633142863 335.55933676498904 C 285.3024033979969 340.1760199516932, 292.0958806651691 343.0000000000793, 299.0 343.0 C 305.9041193347862 343.0, 312.69759660188197 340.1760199515542, 317.83112366836394 335.55933676482096 C 322.9646507348459 330.94265357808774, 326.4531371065675 324.69746333235463, 328.5355159239286 318.11486792856635 C 332.70027355879324 304.94967712108314, 331.99999999983595 290.8082386695264, 332.0 277.0 L 332.0 244.0 C 332.0 230.19176133042762, 331.2997264408723 216.05032287883216, 335.46448407559444 202.88513207125564 C 337.5468628930446 196.30253666744866, 341.03534926486043 190.05734642171515, 346.16887633142863 185.44066323501096 C 351.3024033979969 180.82398004830677, 358.0958806651691 177.9999999999207, 365.0 178.0 C 371.9041193347862 178.0, 378.6975966018819 180.8239800484458, 383.8311236683639 185.44066323517904 C 388.9646507348459 190.05734642191226, 392.45313710656745 196.30253666764537, 394.5355159239286 202.88513207143362 C 398.70027355879324 216.05032287891686, 397.99999999983595 230.19176133047358, 398.0 244.0 L 398.0 409.0 C 398.0 434.9181393921158, 387.3304634573715 460.6766792175649, 369.0035713374682 479.0035713374682 C 350.6766792175649 497.3304634573715, 324.9181393921158 508.0, 299.0 508.0 C 273.0818606078842 508.0, 247.32332078243505 497.3304634573715, 228.9964286625318 479.0035713374682 C 210.66953654262855 460.6766792175649, 200.0 434.9181393921158, 200.0 409.0 Z" fill="white" stroke="#222" stroke-width="8"/>
84
+ <path d="M 216.0 310.0 L 216.0 244.0 C 216.0 234.22834905515546, 215.1020924443995 224.4122681509689, 216.1841437241162 214.70071177642498 C 216.72516936379034 209.844933589686, 217.9808881723563 204.95096086504498, 220.76278042847377 200.93444919234338 C 222.15372655653243 198.92619335599267, 223.92588456807474 197.1637763205271, 226.02493950620254 195.91405995185806 C 228.12399444433038 194.664343583189, 230.55779331036828 193.94127078651735, 233.0 194.0 C 235.41232855641024 194.0580107160999, 237.77996892273725 194.8771079083559, 239.8018790488464 196.1941400830548 C 241.82378917495552 197.5111722577537, 243.50829248740763 199.31323878994007, 244.81698664953686 201.3405557107158 C 247.43437497379512 205.39518955226723, 248.5521495726032 210.25006315410437, 249.0028752097118 215.05502138795725 C 249.9043264831478 224.66493785507254, 249.00000000072285 234.3478961410834, 249.0 244.0 L 249.0 310.0" fill="lightpink"/>
85
+ <path d="M 348.0 310.0 L 348.0 244.0 C 348.0 234.22834905515546, 347.1020924443995 224.4122681509689, 348.1841437241162 214.70071177642498 C 348.72516936379037 209.844933589686, 349.9808881723563 204.95096086504498, 352.7627804284738 200.93444919234338 C 354.15372655653243 198.92619335599267, 355.9258845680747 197.1637763205271, 358.02493950620254 195.91405995185806 C 360.1239944443304 194.664343583189, 362.5577933103683 193.94127078651735, 365.0 194.0 C 367.4123285564103 194.0580107160999, 369.7799689227372 194.8771079083559, 371.8018790488464 196.19414008305478 C 373.82378917495555 197.51117225775369, 375.50829248740763 199.31323878994004, 376.8169866495369 201.3405557107158 C 379.4343749737951 205.39518955226723, 380.55214957260324 210.25006315410437, 381.00287520971176 215.05502138795725 C 381.90432648314777 224.66493785507254, 381.0000000007229 234.3478961410834, 381.0 244.0 L 381.0 310.0" fill="lightpink"/>
86
+ <circle cx="266" cy="392.5" r="8"/>
87
+ <circle cx="332" cy="392.5" r="8"/>
88
+ <circle cx="299" cy="425.5" r="11"/>
89
+ <path d="M 322.0 455.0 C 315.7063661758018 455.0521961277266, 309.4320989331617 452.4686743219336, 305.0 448.0 C 302.0772695333536 445.0531500349613, 299.9507898076094 441.3239327935063, 298.90312404021506 437.3078806851613 C 297.8554582728207 433.29182857681633, 297.8892468500779 428.99906308240446, 299.0 425.0 C 299.8719722839633 429.09088013900083, 299.68769047885155 433.40230512834063, 298.4698259324832 437.4038600664079 C 297.2519613861149 441.40541500447523, 295.0031316627347 445.0884993230377, 292.0 448.0 C 287.49276132443146 452.36971466086123, 281.27730583260774 454.9290198633769, 275.0 455.0" fill="none" stroke="black" stroke-width="6.8" stroke-linecap="round"/>
90
+ <circle cx="299" cy="706.0" r="33" fill="white" stroke="#222" stroke-width="8"/>
91
+ <path d="M 299.0 508.0 C 285.6168687650313 508.0, 272.1798037521314 509.686385334832, 259.4080482065763 513.6851928992162 C 246.63629266102126 517.6840004636003, 234.5346850468751 524.164640813866, 224.7968955388809 533.3452539279446 C 215.05910603136724 542.5258670405552, 207.9255297722978 554.3819492776137, 204.1390089945377 567.2182439928216 C 200.3524882167781 580.0545387080286, 200.00000000073817 593.616868766389, 200.0 607.0 L 200.0 706.0 C 200.0 710.4803295401729, 199.9057151881855 715.0167262087557, 198.70087075556614 719.3320133002169 C 197.49602632294682 723.647300391678, 195.18402558593164 727.6684630743459, 191.93767221017092 730.7562685326336 C 188.69131883433857 733.8440739907251, 184.59476387883424 735.9595256454222, 180.28628380138116 737.1884895220222 C 175.9778037239281 738.4174533986222, 171.47600979743478 738.8033045982604, 167.0 739.0 C 153.26484493211893 739.6035826481465, 139.17520048289057 738.6166348120972, 126.08261538347331 742.8122291879157 C 119.53632283377183 744.9100263758216, 113.31886678251624 748.3478646059922, 108.63549108832545 753.3798315469534 C 103.95211539413467 758.4117984879146, 100.90620358737455 765.1264345917972, 101.0 772.0 C 101.09329594894974 778.8368905533837, 104.27741090358944 785.4242477310315, 108.9973232212972 790.371388752489 C 113.71723553900495 795.3185297739465, 119.88223449568491 798.7297340092009, 126.36592228611502 800.9008095973056 C 139.33329786696706 805.2429607734878, 153.32494583953329 805.0000000000233, 167.0 805.0 L 200.0 805.0 C 209.08875049282324 805.0, 218.27486273270944 804.8764663336966, 227.0912347632353 802.6680801038545 C 235.90760679376112 800.4596938740125, 244.2576835112966 796.1111177224899, 250.68440061728444 789.684400616502 C 257.1111177230905 783.2576835105691, 261.45969387445064 774.9076067931444, 263.668080104165 766.0912347627592 C 265.87646633387936 757.274862732374, 266.00000000008976 748.0887504926558, 266.0 739.0 L 266.0 722.0 C 266.0 716.4456784896975, 266.0259013637569 710.8696819505433, 266.82522072908733 705.3731761521276 C 267.6245400944178 699.8766703537119, 269.21190275919724 694.454689775414, 271.9281019712079 689.6098214304037 C 274.6443011832178 684.7649530853961, 278.49874363441177 680.5296612408371, 283.20520257470935 677.5801304844161 C 287.9116615150069 674.6305997279952, 293.44567848970013 672.9999999999994, 299.0 673.0 C 304.55432151030254 673.0, 310.0883384849983 674.6305997279973, 314.7947974252978 677.5801304844201 C 319.5012563655973 680.529661240843, 323.35569881679277 684.7649530854045, 326.07189802880345 689.6098214304147 C 328.78809724081174 694.4546897754238, 330.3754599055891 699.8766703537201, 331.17477927091767 705.3731761521339 C 331.97409863624625 710.8696819505476, 332.00000000000153 716.4456784896996, 332.0 722.0 L 332.0 739.0 C 332.0 748.0887504928232, 332.12353366630344 757.2748627327095, 334.3319198961455 766.0912347632353 C 336.54030612598757 774.9076067937611, 340.88888227751016 783.2576835112966, 347.315599383498 789.6844006172844 C 353.74231648943095 796.1111177230905, 362.0923932068556 800.4596938744506, 370.90876523724086 802.668080104165 C 379.72513726762605 804.8764663338793, 388.9112495073442 805.0000000000897, 398.0 805.0 L 431.0 805.0 C 444.6750541604831 805.0, 458.6667021330666 805.242960773441, 471.63407771392684 800.9008095972316 C 478.1177655043439 798.7297340091345, 484.28276446101205 795.3185297738903, 489.0026767787118 790.3713887524457 C 493.7225890964116 785.4242477310011, 496.90670405104737 778.8368905533688, 497.0 772.0 C 497.0937964126265 765.1264345917893, 494.04788460586377 758.4117984878987, 489.36450891166834 753.3798315469312 C 484.6811332174729 748.3478646059637, 478.4636771662107 744.9100263757884, 471.9173846165021 742.8122291878792 C 458.82479951709024 738.6166348120744, 444.73515506787226 739.6035826481346, 431.0 739.0 C 426.52399020249027 738.8033045980654, 422.0221962759296 738.4174533982276, 417.7137161984488 737.1884895214207 C 413.405236120968 735.9595256446137, 409.3086811654778 733.8440739897021, 406.062327789717 730.7562685314143 C 402.81597441407297 727.668463073302, 400.5039736771219 723.6473003908422, 399.29912924451287 719.3320132995915 C 398.09428481190395 715.0167262083409, 398.0000000000466 710.4803295399672, 398.0 706.0 L 398.0 607.0 C 398.0 593.6168687650313, 397.64751178467236 580.0545387052758, 393.8609910072367 567.2182439885579 C 390.0744702298011 554.381949271841, 382.94089397066307 542.5258670331881, 373.20310446266944 533.3452539191104 C 363.4653149538102 524.1646408062948, 351.36370733914595 517.6840004575114, 338.5919517933651 513.6851928946413 C 325.82019624758425 509.68638533177125, 312.3831312347317 507.9999999984876, 299.0 508.0 Z" fill="white" stroke="#222" stroke-width="8"/>
92
+ <path d="M 104.3 762.0999999999999 L 134 762.0999999999999" fill="none" stroke="#222" stroke-linecap="round" stroke-width="8"/>
93
+ <path d="M 104.3 781.9000000000001 L 134 781.9000000000001" fill="none" stroke="#222" stroke-linecap="round" stroke-width="8"/>
94
+ <path d="M 493.7 762.0999999999999 L 464 762.0999999999999" fill="none" stroke="#222" stroke-linecap="round" stroke-width="8"/>
95
+ <path d="M 493.7 781.9000000000001 L 464 781.9000000000001" fill="none" stroke="#222" stroke-linecap="round" stroke-width="8"/>
96
+ <path d="M 249.0 574.0 L 249.0 607.0 C 249.0 611.2860241495455, 249.01412610551617 615.5869106100391, 249.59094227224065 619.8339432353308 C 250.16775843896514 624.0809758606225, 251.32026910276159 628.2815247837416, 253.34068690081475 632.0614606207363 C 255.3611046988676 635.8413964577301, 258.26234905805234 639.1771432303532, 261.85500038880525 641.5144193000799 C 265.44765171955817 643.8516953698066, 269.71397585903725 645.1581406414942, 274.0000000085817 645.158140641494 C 278.28602415724345 645.1581406401451, 282.55234829543264 643.8516953673839, 286.14499962471 641.5144192970076 C 289.7376509539874 639.1771432266314, 292.63889531152466 635.8413964537821, 294.6593131079716 632.0614606169308 C 296.67973090441774 628.2815247800801, 297.83224156665375 624.0809758574651, 298.409057731922 619.8339432328683 C 298.9858738971903 615.5869106082714, 299.00000000134946 611.2860241486609, 299.0 607.0 L 299.0 574.0 L 299.0 607.0 C 299.0 611.2003036665545, 299.0138435834059 615.4151723978383, 299.5791234267959 619.5772643706242 C 300.1444032701859 623.7393563434101, 301.2738637207064 627.8558942880667, 303.25387316279847 631.5602314083216 C 305.23388260489025 635.2645685285754, 308.07710207689126 638.5336003657461, 311.59790038102915 640.8241309140783 C 315.11869868516703 643.1146614624105, 319.2996963418565 644.3949778286643, 323.50000000841004 644.3949778286641 C 327.70030367409856 644.3949778273421, 331.881301329524 643.114661460036, 335.40209963221577 640.8241309110673 C 338.9228979349076 638.5336003620986, 341.7661174052941 635.2645685247063, 343.74612684581217 631.5602314045922 C 345.72613628632934 627.8558942844785, 346.85559673532066 623.7393563403158, 347.4208765772836 619.5772643682109 C 347.98615641924647 615.415172396106, 348.00000000132246 611.2003036656877, 348.0 607.0 L 348.0 574.0" fill="none" stroke="black" stroke-width="6.8"/>
97
+ <path d="M 266 623.5 L 266 640.0" fill="none" stroke="black" stroke-linecap="round" stroke-width="6.8"/>
98
+ <path d="M 282.5 623.5 L 282.5 640.0" fill="none" stroke="black" stroke-linecap="round" stroke-width="6.8"/>
99
+ <path d="M 332 623.5 L 332 640.0" fill="none" stroke="black" stroke-linecap="round" stroke-width="6.8"/>
100
+ <path d="M 315.5 623.5 L 315.5 640.0" fill="none" stroke="black" stroke-linecap="round" stroke-width="6.8"/>
101
+ <path d="M -3.0 800.0 L 6.0 800.0 C 13.619618391807467 777.1235874872226, 19.639129829385894 753.7143763410843, 24.0 730.0 C 28.250792053862654 706.8842275580073, 30.92569807361966 683.4787998851335, 32.0 660.0 C 26.490015613684143 683.3710137571425, 20.823178789110912 706.7050477406792, 15.0 730.0 C 9.15721514001531 753.3733840749214, 3.1570337575635863 776.707422784456, -3.0 800.0 Z" fill="green"/>
102
+ <path d="M 10.0 800.0 L 19.0 800.0 C 25.31061552431832 777.0360042317283, 29.992877496189323 753.6246943723733, 33.0 730.0 C 35.95344924199414 706.7969759801904, 37.29108068486698 683.388425729916, 37.0 660.0 C 32.827209303842416 683.3627678192187, 28.49373932678172 706.6968369264686, 24.0 730.0 C 19.494308439877283 753.365143714237, 14.827493834593277 776.6992167406571, 10.0 800.0 Z" fill="green"/>
103
+ <path d="M 31.0 800.0 L 40.0 800.0 C 43.99229486458677 781.9290795637934, 46.33847130160414 763.4948361300854, 47.0 745.0 C 47.657198780140355 726.6262185252702, 46.65176644942786 708.1932924622078, 44.0 690.0 C 42.16424601075577 708.350755076835, 40.16413906463903 726.6850687495718, 38.0 745.0 C 35.83127015555 763.3537826431125, 33.49781152183262 781.6881004794634, 31.0 800.0 Z" fill="green"/>
104
+ <path d="M 49.0 800.0 L 58.0 800.0 C 61.321354894625365 784.2304837398933, 63.0 768.1154907282969, 63.0 752.0 C 63.0 735.8845092717031, 61.32135489462537 719.7695162601067, 58.0 704.0 C 56.831762909450156 720.0131865509658, 55.49833498810035 736.0143216071634, 54.0 752.0 C 52.49876146851097 768.0166561856397, 50.83197610813377 784.0177956452608, 49.0 800.0 Z" fill="green"/>
105
+ <path d="M 70.0 800.0 L 79.0 800.0 C 78.44002102166998 779.5592014261948, 76.43336226267749 759.1581707097711, 73.0 739.0 C 69.4811902304697 718.3401445572815, 64.46370413225974 697.9357010912277, 58.0 678.0 L 64.0 739.0 L 70.0 800.0 Z" fill="green"/>
106
+ <path d="M 83.0 800.0 L 92.0 800.0 C 94.14035284163282 787.131671906484, 94.81275808404492 774.0197696794481, 94.0 761.0 C 93.17528498160821 747.7886892773749, 90.8212707945736 734.6734673781822, 87.0 722.0 L 85.0 761.0 L 83.0 800.0 Z" fill="green"/>
107
+ <path d="M 103.0 800.0 L 112.0 800.0 C 112.79281673946504 782.6514875360283, 112.12300435342014 765.2363654988608, 110.0 748.0 C 107.83150727095637 730.3943209540741, 104.14678941926351 712.9756547460717, 99.0 696.0 L 101.0 748.0 L 103.0 800.0 Z" fill="green"/>
108
+ <path d="M 125.0 800.0 L 134.0 800.0 C 140.45889096399367 782.4483717344449, 145.48113269465384 764.3683015040683, 149.0 746.0 C 152.4736676086353 727.8676385257863, 154.48233711507018 709.4548347167997, 155.0 691.0 C 150.04341203782272 709.3451361816168, 145.04339335556043 727.6785380165786, 140.0 746.0 C 135.0419018924665 764.0116044066039, 130.04188383677987 782.0116694070757, 125.0 800.0 Z" fill="green"/>
109
+ <path d="M 144.0 800.0 L 153.0 800.0 C 151.76329138229502 778.1891105331488, 149.0889206078934 756.4598479911357, 145.0 735.0 C 140.8050391422152 712.9836218480149, 135.1211408461777 691.2510695396362, 128.0 670.0 L 136.0 735.0 L 144.0 800.0 Z" fill="green"/>
110
+ <path d="M 157.0 800.0 L 166.0 800.0 C 173.88426951960093 786.0700240337065, 180.26634944611618 771.2904705196713, 185.0 756.0 C 189.53184605548242 741.3613912302444, 192.5530083705393 726.25557965496, 194.0 711.0 C 188.2049490731321 726.0809007702342, 182.20420503242957 741.0827608719906, 176.0 756.0 C 169.86485498089206 770.7511929178154, 163.53075365846422 785.4196380855429, 157.0 800.0 Z" fill="green"/>
111
+ <path d="M 172.0 800.0 L 181.0 800.0 C 181.41030087417835 787.2743972014459, 180.40207790262647 774.503572895122, 178.0 762.0 C 175.48832837901173 748.9259572442269, 171.45236390804806 736.1454030861753, 166.0 724.0 L 169.0 762.0 L 172.0 800.0 Z" fill="green"/>
112
+ <path d="M 197.0 800.0 L 206.0 800.0 C 205.59875184025123 778.5568995870894, 203.59129564098143 757.1440334615451, 200.0 736.0 C 196.31415524377195 714.299301240917, 190.95987757230847 692.882190555063, 184.0 672.0 C 186.49837817866282 693.3148505949508, 188.83180466971592 714.6490356560078, 191.0 736.0 C 193.1647925273601 757.3174557744992, 195.1648721263956 778.6516381642112, 197.0 800.0 Z" fill="green"/>
113
+ <path d="M 211.0 800.0 L 220.0 800.0 C 226.896807035696 788.0701991659873, 232.28633467308677 775.2700710271843, 236.0 762.0 C 239.553251250212 749.3031379198251, 241.57254120298202 736.1777532268202, 242.0 723.0 C 237.2055411305848 736.0778157703282, 232.20471120075715 749.0799735878802, 227.0 762.0 C 221.86431352964314 774.7486813930665, 216.5301182630499 787.4173951512254, 211.0 800.0 Z" fill="green"/>
114
+ <path d="M 225.0 800.0 L 234.0 800.0 C 230.21652648191687 784.9554771391887, 225.1940060096394 770.2227504205081, 219.0 756.0 C 212.32065774173836 740.6628147010889, 204.27875393314665 725.9193243853375, 195.0 712.0 L 210.0 756.0 L 225.0 800.0 Z" fill="green"/>
115
+ <path d="M 249.0 800.0 L 258.0 800.0 C 263.63393736902316 782.4157178730906, 267.65622377465934 764.3154290477278, 270.0 746.0 C 272.3318409388736 727.7778391960953, 273.00218425205617 709.3433980835748, 272.0 691.0 C 268.52983084679346 709.3719037679022, 264.86288376931014 727.7066391553186, 261.0 746.0 C 257.19028254329874 764.0415824844151, 253.18998500321118 782.0429214148093, 249.0 800.0 Z" fill="green"/>
116
+ <path d="M 269.0 800.0 L 278.0 800.0 C 284.63536412400674 778.4147912439873, 289.6540004058867 756.3327916037157, 293.0 734.0 C 296.27201032479326 712.1610479459196, 297.9446172930807 690.0826359645255, 298.0 668.0 C 293.492152133859 690.0332898733518, 288.82532349798055 712.034053442493, 284.0 734.0 C 279.1593299894601 756.0358072984218, 274.15915534541256 778.0365757322311, 269.0 800.0 Z" fill="green"/>
117
+ <path d="M 282.0 800.0 L 291.0 800.0 C 298.6669487792081 788.060841543719, 305.0488425025 775.2970540971351, 310.0 762.0 C 314.57794975639104 749.7052496117453, 317.93313094398707 736.9555610988805, 320.0 724.0 L 301.0 762.0 L 282.0 800.0 Z" fill="green"/>
118
+ <path d="M 306.0 800.0 L 315.0 800.0 C 313.70767220480457 778.8557862277403, 311.03343105435147 757.7961371679224, 307.0 737.0 C 302.79397079141177 715.3139567342492, 297.10980090061076 693.9147289100572, 290.0 673.0 C 292.6456710202367 694.3359507943206, 295.31233940870436 715.6692979020618, 298.0 737.0 C 300.646317001208 758.0025774059013, 303.312985337111 779.0025905511376, 306.0 800.0 Z" fill="green"/>
119
+ <path d="M 324.0 800.0 L 333.0 800.0 C 332.86402884355545 786.2041851722593, 331.1835380095554 772.424160333459, 328.0 759.0 C 324.63420200757844 744.8072962330953, 319.5878403758274 731.0139077729758, 313.0 718.0 C 315.1638801595634 731.6420143440969, 317.16407210552484 745.3099926415, 319.0 759.0 C 320.8300372065997 772.6460821255948, 322.4968628034204 786.3140520195248, 324.0 800.0 Z" fill="green"/>
120
+ <path d="M 338.0 800.0 L 347.0 800.0 C 346.29296440421166 786.8445486406364, 344.2798994068314 773.7596261576647, 341.0 761.0 C 337.4480224667035 747.1819221190472, 332.4097119719785 733.7464274664471, 326.0 721.0 C 327.9746249555293 734.3371231336199, 329.9746297838082 747.6704886554795, 332.0 761.0 C 333.97586406679386 774.0036979328551, 335.9758686619221 787.0037278011886, 338.0 800.0 Z" fill="green"/>
121
+ <path d="M 360.0 800.0 L 369.0 800.0 C 369.57215152350034 779.9625987827138, 368.56804116351145 759.8803915829355, 366.0 740.0 C 363.33364380566996 719.3585063993343, 358.9811083929037 698.9350710009697, 353.0 679.0 C 354.4924842750426 699.3224800462249, 355.82587208361656 719.6566441269778, 357.0 740.0 C 358.1538441545606 759.9919122360488, 359.1538836115405 779.9927013756461, 360.0 800.0 Z" fill="green"/>
122
+ <path d="M 373.0 800.0 L 382.0 800.0 C 385.3062188008659 775.4807263425715, 386.97781061207473 750.7411675366811, 387.0 726.0 C 387.0224883415073 700.9254992193587, 385.35076288458794 675.8496173655683, 382.0 651.0 C 380.8450802712293 676.0090898726719, 379.51170167788126 701.0099384979474, 378.0 726.0 C 376.5071754236209 750.6780026253437, 374.8404535860592 775.3454858212563, 373.0 800.0 Z" fill="green"/>
123
+ <path d="M 396.0 800.0 L 405.0 800.0 C 411.1210557462802 784.1297338127071, 415.81283123280014 767.7085196098874, 419.0 751.0 C 422.08017876810345 734.85236832186, 423.7552206227227 718.4369581465916, 424.0 702.0 L 410.0 751.0 L 396.0 800.0 Z" fill="green"/>
124
+ <path d="M 413.0 800.0 L 422.0 800.0 C 430.2769773873734 775.8066140017564, 436.9628173355184 751.0690061936198, 442.0 726.0 C 446.9067307243624 701.5802258697473, 450.2491604486008 676.8462459103829, 452.0 652.0 C 445.8223344539626 676.7062867449591, 439.4888331435401 701.3736076381834, 433.0 726.0 C 426.4895250410917 750.708527288835, 419.8226803750056 775.3758525533535, 413.0 800.0 Z" fill="green"/>
125
+ <path d="M 424.0 800.0 L 433.0 800.0 C 430.3162609977542 779.4369917778009, 426.30517713486836 759.0473154747979, 421.0 739.0 C 415.41358368996197 717.8899319864713, 408.39207524017957 697.1597641823518, 400.0 677.0 C 403.96816526149763 697.6728112740112, 407.96817158771626 718.3395106261409, 412.0 739.0 C 415.9691655201198 759.3393829463776, 419.96917165122176 779.6727474461454, 424.0 800.0 Z" fill="green"/>
126
+ <path d="M 444.0 800.0 L 453.0 800.0 C 455.1550326677835 780.4214547510275, 455.82425018855827 760.6795378881706, 455.0 741.0 C 454.17043505576925 721.1935686793805, 451.8280581819353 701.4506778856376, 448.0 682.0 L 446.0 741.0 L 444.0 800.0 Z" fill="green"/>
127
+ <path d="M 459.0 800.0 L 468.0 800.0 C 466.43711690808465 783.4458360320918, 463.42179042967416 767.0290585385239, 459.0 751.0 C 454.25166721045383 733.78722036819, 447.8810197356168 717.0223585923031, 440.0 701.0 C 443.4660092761499 717.6397649469702, 446.799483582996 734.3071364812006, 450.0 751.0 C 453.12704452766826 767.3096577915506, 456.12716564546446 783.6436505439964, 459.0 800.0 Z" fill="green"/>
128
+ <path d="M 484.0 800.0 L 493.0 800.0 C 501.24941195188586 782.2949158219499, 507.94993319182197 763.8684824121257, 513.0 745.0 C 517.9084073084581 726.6607976707929, 521.2577311433148 707.9045841955951, 523.0 689.0 C 516.8702497122954 707.7349162033515, 510.5364153938667 726.4030594576677, 504.0 745.0 C 497.5312265865597 763.4044904282628, 490.86404342537145 781.7392441215304, 484.0 800.0 Z" fill="green"/>
129
+ <path d="M 495.0 800.0 L 504.0 800.0 C 504.1626459571671 785.5797019837767, 502.81968501719473 771.1428718790734, 500.0 757.0 C 496.9844433814947 741.8746825835026, 492.2792319610345 727.0868752620563, 486.0 713.0 C 487.81804499983076 727.6489366369062, 489.4848301246496 742.3166457353119, 491.0 757.0 C 492.4776159504341 771.3194230695483, 493.8110394108424 785.6537252689376, 495.0 800.0 Z" fill="green"/>
130
+ <path d="M 516.0 800.0 L 525.0 800.0 C 526.4577886651399 775.3620582360136, 526.4577886651399 750.6379417639864, 525.0 726.0 C 523.5118751566876 700.8493494950079, 520.504594120297 675.7886741917539, 516.0 651.0 L 516.0 726.0 L 516.0 800.0 Z" fill="green"/>
131
+ <path d="M 535.0 800.0 L 544.0 800.0 C 544.5624307089917 781.2932395176947, 543.5577718121054 762.539606775818, 541.0 744.0 C 538.3332547994022 724.6705167535306, 533.9779751180299 705.5742904582831, 528.0 687.0 C 529.4919063340864 705.9884285751024, 530.8253016073061 724.9893112184841, 532.0 744.0 C 533.1529087127041 762.6580562866451, 534.1529534601948 781.3255582398067, 535.0 800.0 Z" fill="green"/>
132
+ <path d="M 557.0 800.0 L 566.0 800.0 C 566.3678007293466 785.9468929808315, 565.3614626332959 771.8581596361225, 563.0 758.0 C 560.495817038892 743.3042911864092, 556.4673053421659 728.8687909398072, 551.0 715.0 C 551.9880153773412 729.3341661134095, 552.988015843406 743.6675061270034, 554.0 758.0 C 554.9885649857252 772.0008136576486, 555.9885654304684 786.0008198840519, 557.0 800.0 Z" fill="green"/>
133
+ <path d="M 569.0 800.0 L 578.0 800.0 C 584.3097000637621 776.3587518690314, 588.9910832130134 752.2830671014527, 592.0 728.0 C 594.9990980419592 703.7961737886186, 596.3366086790426 679.3866046618472, 596.0 655.0 C 591.8601969012652 679.3672687797988, 587.5266810030168 703.7016272853473, 583.0 728.0 C 578.5221600922431 752.0362028962744, 573.8553010369884 776.0371923232984, 569.0 800.0 Z" fill="green"/>
134
+ </svg>
Binary file
data/examples/chill.rb ADDED
@@ -0,0 +1,16 @@
1
+ WIDTH, HEIGHT = 800, 300
2
+
3
+ def shard(size)
4
+ b = Random.rand 200..250
5
+ l = b * 0.7
6
+ col = "rgb(#{l}, #{l}, #{b})"
7
+ opa = Random.rand 0.2..0.7
8
+ width = size / Random.rand(4..7)
9
+ iso_tri(size / 6, size, fill: col, opacity: opa)[0, -size]
10
+ end
11
+
12
+
13
+ 80.times do
14
+ shard(Random.rand(HEIGHT / 5..HEIGHT / 3 * 2))
15
+ .flip_x.move(Random.rand(WIDTH), 0)
16
+ end
@@ -0,0 +1,86 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="805"
4
+ height="195">
5
+
6
+ <path d="M 352 159 L 339 0 L 365 0 Z" fill="rgb(160.29999999999998, 160.29999999999998, 229)" opacity="0.28891185839793754"/>
7
+ <path d="M 397 144 L 385 0 L 409 0 Z" fill="rgb(151.89999999999998, 151.89999999999998, 217)" opacity="0.5584353291675697"/>
8
+ <path d="M 2 174 L -12 0 L 16 0 Z" fill="rgb(170.79999999999998, 170.79999999999998, 244)" opacity="0.5769507888311034"/>
9
+ <path d="M 146 187 L 131 0 L 161 0 Z" fill="rgb(149.1, 149.1, 213)" opacity="0.3137443844897627"/>
10
+ <path d="M 37 99 L 29 0 L 45 0 Z" fill="rgb(161.0, 161.0, 230)" opacity="0.386570407067405"/>
11
+ <path d="M 483 76 L 477 0 L 489 0 Z" fill="rgb(169.39999999999998, 169.39999999999998, 242)" opacity="0.35446818274013203"/>
12
+ <path d="M 170 72 L 164 0 L 176 0 Z" fill="rgb(154.0, 154.0, 220)" opacity="0.21476998743128434"/>
13
+ <path d="M 151 179 L 137 0 L 165 0 Z" fill="rgb(154.7, 154.7, 221)" opacity="0.2637431192444464"/>
14
+ <path d="M 84 180 L 69 0 L 99 0 Z" fill="rgb(158.2, 158.2, 226)" opacity="0.2716171530850471"/>
15
+ <path d="M 43 69 L 38 0 L 48 0 Z" fill="rgb(151.89999999999998, 151.89999999999998, 217)" opacity="0.5847285267673443"/>
16
+ <path d="M 636 148 L 624 0 L 648 0 Z" fill="rgb(147.0, 147.0, 210)" opacity="0.4917241466430015"/>
17
+ <path d="M 394 125 L 384 0 L 404 0 Z" fill="rgb(172.89999999999998, 172.89999999999998, 247)" opacity="0.6431812577502214"/>
18
+ <path d="M 72 85 L 65 0 L 79 0 Z" fill="rgb(160.29999999999998, 160.29999999999998, 229)" opacity="0.48284187875976636"/>
19
+ <path d="M 315 177 L 301 0 L 329 0 Z" fill="rgb(166.6, 166.6, 238)" opacity="0.479925899495657"/>
20
+ <path d="M 756 195 L 740 0 L 772 0 Z" fill="rgb(144.89999999999998, 144.89999999999998, 207)" opacity="0.47127323398541016"/>
21
+ <path d="M 307 83 L 301 0 L 313 0 Z" fill="rgb(156.79999999999998, 156.79999999999998, 224)" opacity="0.509185083995686"/>
22
+ <path d="M 723 97 L 715 0 L 731 0 Z" fill="rgb(156.1, 156.1, 223)" opacity="0.6033519372437472"/>
23
+ <path d="M 201 190 L 186 0 L 216 0 Z" fill="rgb(161.7, 161.7, 231)" opacity="0.6919120049048855"/>
24
+ <path d="M 792 166 L 779 0 L 805 0 Z" fill="rgb(160.29999999999998, 160.29999999999998, 229)" opacity="0.20633610051922352"/>
25
+ <path d="M 680 151 L 668 0 L 692 0 Z" fill="rgb(164.5, 164.5, 235)" opacity="0.6594278875032077"/>
26
+ <path d="M 706 192 L 690 0 L 722 0 Z" fill="rgb(155.39999999999998, 155.39999999999998, 222)" opacity="0.6302555280049273"/>
27
+ <path d="M 63 163 L 50 0 L 76 0 Z" fill="rgb(168.7, 168.7, 241)" opacity="0.5234032416232139"/>
28
+ <path d="M 228 178 L 214 0 L 242 0 Z" fill="rgb(150.5, 150.5, 215)" opacity="0.6562519961864921"/>
29
+ <path d="M 225 72 L 219 0 L 231 0 Z" fill="rgb(165.89999999999998, 165.89999999999998, 237)" opacity="0.6733843919083932"/>
30
+ <path d="M 154 104 L 146 0 L 162 0 Z" fill="rgb(140.0, 140.0, 200)" opacity="0.323107721428243"/>
31
+ <path d="M 511 130 L 501 0 L 521 0 Z" fill="rgb(171.5, 171.5, 245)" opacity="0.41732929588424983"/>
32
+ <path d="M 144 77 L 138 0 L 150 0 Z" fill="rgb(165.89999999999998, 165.89999999999998, 237)" opacity="0.5045227528610761"/>
33
+ <path d="M 437 140 L 426 0 L 448 0 Z" fill="rgb(161.7, 161.7, 231)" opacity="0.3813591899644989"/>
34
+ <path d="M 124 159 L 111 0 L 137 0 Z" fill="rgb(158.2, 158.2, 226)" opacity="0.6659979610485451"/>
35
+ <path d="M 148 85 L 141 0 L 155 0 Z" fill="rgb(156.79999999999998, 156.79999999999998, 224)" opacity="0.5248284194765881"/>
36
+ <path d="M 23 148 L 11 0 L 35 0 Z" fill="rgb(148.39999999999998, 148.39999999999998, 212)" opacity="0.6125637074007152"/>
37
+ <path d="M 272 183 L 257 0 L 287 0 Z" fill="rgb(174.29999999999998, 174.29999999999998, 249)" opacity="0.2007802049395751"/>
38
+ <path d="M 166 96 L 158 0 L 174 0 Z" fill="rgb(161.7, 161.7, 231)" opacity="0.4376306720580754"/>
39
+ <path d="M 711 169 L 697 0 L 725 0 Z" fill="rgb(140.7, 140.7, 201)" opacity="0.22236814248730696"/>
40
+ <path d="M 636 143 L 625 0 L 647 0 Z" fill="rgb(159.6, 159.6, 228)" opacity="0.5128255053940591"/>
41
+ <path d="M 788 87 L 781 0 L 795 0 Z" fill="rgb(168.0, 168.0, 240)" opacity="0.5645934178504538"/>
42
+ <path d="M 463 84 L 456 0 L 470 0 Z" fill="rgb(172.2, 172.2, 246)" opacity="0.41062473833743374"/>
43
+ <path d="M 371 177 L 357 0 L 385 0 Z" fill="rgb(149.79999999999998, 149.79999999999998, 214)" opacity="0.31287710294804344"/>
44
+ <path d="M 726 133 L 715 0 L 737 0 Z" fill="rgb(168.7, 168.7, 241)" opacity="0.3150317304907215"/>
45
+ <path d="M 40 127 L 30 0 L 50 0 Z" fill="rgb(148.39999999999998, 148.39999999999998, 212)" opacity="0.4408264827107259"/>
46
+ <path d="M 467 112 L 458 0 L 476 0 Z" fill="rgb(158.2, 158.2, 226)" opacity="0.3638179554052412"/>
47
+ <path d="M 383 63 L 378 0 L 388 0 Z" fill="rgb(146.29999999999998, 146.29999999999998, 209)" opacity="0.6167915885531863"/>
48
+ <path d="M 364 111 L 355 0 L 373 0 Z" fill="rgb(167.29999999999998, 167.29999999999998, 239)" opacity="0.312206813446029"/>
49
+ <path d="M 132 104 L 124 0 L 140 0 Z" fill="rgb(156.1, 156.1, 223)" opacity="0.21916416062074362"/>
50
+ <path d="M 220 184 L 205 0 L 235 0 Z" fill="rgb(142.79999999999998, 142.79999999999998, 204)" opacity="0.23913666316121135"/>
51
+ <path d="M 529 77 L 523 0 L 535 0 Z" fill="rgb(153.29999999999998, 153.29999999999998, 219)" opacity="0.6412684687855591"/>
52
+ <path d="M 115 151 L 103 0 L 127 0 Z" fill="rgb(159.6, 159.6, 228)" opacity="0.6664341221213768"/>
53
+ <path d="M 703 93 L 696 0 L 710 0 Z" fill="rgb(156.1, 156.1, 223)" opacity="0.571662544242904"/>
54
+ <path d="M 19 112 L 10 0 L 28 0 Z" fill="rgb(142.79999999999998, 142.79999999999998, 204)" opacity="0.5332916086113584"/>
55
+ <path d="M 328 140 L 317 0 L 339 0 Z" fill="rgb(151.2, 151.2, 216)" opacity="0.22569465081564832"/>
56
+ <path d="M 319 192 L 303 0 L 335 0 Z" fill="rgb(172.89999999999998, 172.89999999999998, 247)" opacity="0.3886381914032917"/>
57
+ <path d="M 692 112 L 683 0 L 701 0 Z" fill="rgb(144.2, 144.2, 206)" opacity="0.3708259132083651"/>
58
+ <path d="M 378 172 L 364 0 L 392 0 Z" fill="rgb(163.79999999999998, 163.79999999999998, 234)" opacity="0.3860626226447502"/>
59
+ <path d="M 66 167 L 53 0 L 79 0 Z" fill="rgb(160.29999999999998, 160.29999999999998, 229)" opacity="0.3174237615003258"/>
60
+ <path d="M 497 63 L 492 0 L 502 0 Z" fill="rgb(174.29999999999998, 174.29999999999998, 249)" opacity="0.3131129059487786"/>
61
+ <path d="M 717 116 L 708 0 L 726 0 Z" fill="rgb(144.2, 144.2, 206)" opacity="0.22879732480162163"/>
62
+ <path d="M 500 116 L 491 0 L 509 0 Z" fill="rgb(143.5, 143.5, 205)" opacity="0.30482434435262323"/>
63
+ <path d="M 690 131 L 680 0 L 700 0 Z" fill="rgb(171.5, 171.5, 245)" opacity="0.5403195537038948"/>
64
+ <path d="M 566 144 L 554 0 L 578 0 Z" fill="rgb(162.39999999999998, 162.39999999999998, 232)" opacity="0.6324631030581522"/>
65
+ <path d="M 482 87 L 475 0 L 489 0 Z" fill="rgb(150.5, 150.5, 215)" opacity="0.646501586746536"/>
66
+ <path d="M 485 146 L 473 0 L 497 0 Z" fill="rgb(155.39999999999998, 155.39999999999998, 222)" opacity="0.4924276184463742"/>
67
+ <path d="M 736 107 L 728 0 L 744 0 Z" fill="rgb(142.1, 142.1, 203)" opacity="0.21124353617890196"/>
68
+ <path d="M 585 160 L 572 0 L 598 0 Z" fill="rgb(147.7, 147.7, 211)" opacity="0.28475486631107577"/>
69
+ <path d="M 395 116 L 386 0 L 404 0 Z" fill="rgb(144.2, 144.2, 206)" opacity="0.5418284931775745"/>
70
+ <path d="M 528 191 L 513 0 L 543 0 Z" fill="rgb(161.0, 161.0, 230)" opacity="0.6786289006124457"/>
71
+ <path d="M 510 96 L 502 0 L 518 0 Z" fill="rgb(148.39999999999998, 148.39999999999998, 212)" opacity="0.2080726852205082"/>
72
+ <path d="M 332 139 L 321 0 L 343 0 Z" fill="rgb(154.7, 154.7, 221)" opacity="0.6111331752173137"/>
73
+ <path d="M 448 89 L 441 0 L 455 0 Z" fill="rgb(164.5, 164.5, 235)" opacity="0.3003586733087359"/>
74
+ <path d="M 235 162 L 222 0 L 248 0 Z" fill="rgb(151.89999999999998, 151.89999999999998, 217)" opacity="0.5406031624731559"/>
75
+ <path d="M 107 168 L 93 0 L 121 0 Z" fill="rgb(153.29999999999998, 153.29999999999998, 219)" opacity="0.5459625149339611"/>
76
+ <path d="M 708 125 L 698 0 L 718 0 Z" fill="rgb(156.1, 156.1, 223)" opacity="0.6315778902832145"/>
77
+ <path d="M 123 130 L 113 0 L 133 0 Z" fill="rgb(158.2, 158.2, 226)" opacity="0.27902466996959185"/>
78
+ <path d="M 35 75 L 29 0 L 41 0 Z" fill="rgb(161.0, 161.0, 230)" opacity="0.691161465490454"/>
79
+ <path d="M 74 169 L 60 0 L 88 0 Z" fill="rgb(147.7, 147.7, 211)" opacity="0.6841705607529122"/>
80
+ <path d="M 791 88 L 784 0 L 798 0 Z" fill="rgb(145.6, 145.6, 208)" opacity="0.5090352208891169"/>
81
+ <path d="M 692 78 L 686 0 L 698 0 Z" fill="rgb(149.1, 149.1, 213)" opacity="0.5597253153721037"/>
82
+ <path d="M 484 63 L 479 0 L 489 0 Z" fill="rgb(151.89999999999998, 151.89999999999998, 217)" opacity="0.5648609718291923"/>
83
+ <path d="M 365 142 L 354 0 L 376 0 Z" fill="rgb(158.89999999999998, 158.89999999999998, 227)" opacity="0.5762213521830202"/>
84
+ <path d="M 517 137 L 506 0 L 528 0 Z" fill="rgb(152.6, 152.6, 218)" opacity="0.47417661291093066"/>
85
+ <path d="M 234 62 L 229 0 L 239 0 Z" fill="rgb(167.29999999999998, 167.29999999999998, 239)" opacity="0.6834800005026658"/>
86
+ </svg>
Binary file
@@ -0,0 +1,11 @@
1
+ square(240, fill: :none)
2
+
3
+ canvas << circ = Circle.new(100,
4
+ fill: :red,
5
+ stroke: :black,
6
+ stroke_width: 4
7
+ )[120, 120].to_simple_path(20)
8
+
9
+ circ.nodes.each do |node|
10
+ circle(4, fill: :green)[*node.at]
11
+ end
@@ -0,0 +1,28 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="240"
4
+ height="240">
5
+
6
+ <rect x="0" y="0" width="240" height="240" fill="none"/>
7
+ <path d="M 220.0 120.0 L 215.10565162951536 150.90169943749473 L 200.90169943749476 178.77852522924732 L 178.77852522924732 200.90169943749473 L 150.90169943749476 215.10565162951536 L 120.0 220.0 L 89.09830056250527 215.10565162951536 L 61.2214747707527 200.90169943749476 L 39.09830056250527 178.77852522924732 L 24.89434837048465 150.90169943749476 L 20.0 120.00000000000001 L 24.894348370484636 89.09830056250527 L 39.09830056250526 61.2214747707527 L 61.22147477075268 39.09830056250527 L 89.09830056250524 24.89434837048465 L 119.99999999999999 20.0 L 150.90169943749473 24.894348370484636 L 178.7785252292473 39.098300562505244 L 200.90169943749473 61.22147477075268 L 215.10565162951536 89.09830056250524 Z" fill="red" stroke="black" stroke-width="4"/>
8
+ <circle cx="220.0" cy="120.0" r="4" fill="green"/>
9
+ <circle cx="215.10565162951536" cy="150.90169943749473" r="4" fill="green"/>
10
+ <circle cx="200.90169943749476" cy="178.77852522924732" r="4" fill="green"/>
11
+ <circle cx="178.77852522924732" cy="200.90169943749473" r="4" fill="green"/>
12
+ <circle cx="150.90169943749476" cy="215.10565162951536" r="4" fill="green"/>
13
+ <circle cx="120.0" cy="220.0" r="4" fill="green"/>
14
+ <circle cx="89.09830056250527" cy="215.10565162951536" r="4" fill="green"/>
15
+ <circle cx="61.2214747707527" cy="200.90169943749476" r="4" fill="green"/>
16
+ <circle cx="39.09830056250527" cy="178.77852522924732" r="4" fill="green"/>
17
+ <circle cx="24.89434837048465" cy="150.90169943749476" r="4" fill="green"/>
18
+ <circle cx="20.0" cy="120.00000000000001" r="4" fill="green"/>
19
+ <circle cx="24.894348370484636" cy="89.09830056250527" r="4" fill="green"/>
20
+ <circle cx="39.09830056250526" cy="61.2214747707527" r="4" fill="green"/>
21
+ <circle cx="61.22147477075268" cy="39.09830056250527" r="4" fill="green"/>
22
+ <circle cx="89.09830056250524" cy="24.89434837048465" r="4" fill="green"/>
23
+ <circle cx="119.99999999999999" cy="20.0" r="4" fill="green"/>
24
+ <circle cx="150.90169943749473" cy="24.894348370484636" r="4" fill="green"/>
25
+ <circle cx="178.7785252292473" cy="39.098300562505244" r="4" fill="green"/>
26
+ <circle cx="200.90169943749473" cy="61.22147477075268" r="4" fill="green"/>
27
+ <circle cx="215.10565162951536" cy="89.09830056250524" r="4" fill="green"/>
28
+ </svg>
Binary file
@@ -0,0 +1,14 @@
1
+ # Basic circle with jitter added
2
+ circle(100).jitter(10, fn: 50)
3
+
4
+ # Circle at position
5
+ circle(50)[200, 100]
6
+
7
+ # Circle with options
8
+ circle(30, fill: "cyan", stroke: "magenta", stroke_width: 3)[60, 140]
9
+
10
+ # Circle flipped (no visual effect)
11
+ circle(40, fill: "magenta")[150, -200].flip(:x)
12
+
13
+ # Circle converted to a path and manually added to canvas
14
+ canvas << Circle.new(30, fill: "lightblue")[250, 130].to_path
@@ -0,0 +1,11 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="280"
4
+ height="240">
5
+
6
+ <path d="M 107.32605871909354 3.213854950739601 L 103.20529716630207 12.755462087107755 L 101.93902017190938 28.06060997603223 L 92.97764858882513 36.8124552684678 L 87.63066800438637 48.17536741017153 L 84.57043208149139 65.88770245216654 L 73.27563008066235 72.43673712508455 L 60.94155026551145 75.97650033511655 L 50.693886161849 83.62355027400157 L 51.67266680443291 94.64031839784678 L 29.2606295122668 97.6170037554651 L 18.53827293787034 97.24890030705471 L 7.152611267316113 99.315955137939 L -5.325935973808309 101.56095892033 L -20.303782529031825 91.40606161014628 L -30.034921691076907 94.60695699518007 L -42.811954710970426 91.45493569246251 L -51.68452434113604 85.06287746578955 L -63.182304816945795 85.03169360075316 L -75.48185006702485 74.95992700204316 L -81.61621080339438 62.71419207337936 L -88.35320285233777 50.040291910921034 L -90.02093671742247 39.50649589724576 L -96.85831611286311 24.86898871648548 L -100.26422921629496 19.453706171656147 L -95.09209689547723 6.317633031176731 L -99.38856470496975 -15.528091713420514 L -96.74238611294302 -25.86224610262392 L -93.97343989214419 -36.90410503788443 L -91.38463193407715 -49.55658238785618 L -78.77159551483302 -64.3876835688435 L -70.40354017268403 -62.997298883584364 L -67.8604630384683 -79.88708667384768 L -49.59710547461526 -84.09338172992496 L -46.08588791669315 -97.67257487941416 L -30.08910008432543 -90.17212527494615 L -18.738131458572465 -98.22872507286887 L -6.872666629062371 -104.7673099510438 L 5.9866739249674 -89.80694800223836 L 18.738131458572514 -98.22872507286885 L 27.522664750215696 -87.8542983363593 L 40.678021572606575 -91.1074861463073 L 59.582630451387814 -84.45705271789828 L 62.270890069443695 -75.69682749232837 L 74.48014997373919 -71.00288671359885 L 85.71598639428115 -51.17440522113871 L 83.29221431676223 -50.66088940772869 L 88.61361880541497 -39.252792140604285 L 94.10353547619077 -16.300956057594895 L 90.71204394538763 -17.802076008407404"/>
7
+ <circle cx="200" cy="100" r="50"/>
8
+ <circle cx="60" cy="140" r="30" fill="cyan" stroke="magenta" stroke-width="3"/>
9
+ <path d="M 190 200 C 190 177.92339902024, 172.07660097976 160, 150 160 C 127.92339902024 160, 110 177.92339902024, 110 200 C 110 222.07660097976, 127.92339902024 240, 150 240 C 172.07660097976 240, 190 222.07660097976, 190 200" fill="magenta"/>
10
+ <path d="M 280 130 C 280 146.55745073482, 266.55745073482 160, 250 160 C 233.44254926518 160, 220 146.55745073482, 220 130 C 220 113.44254926518, 233.44254926518 100, 250 100 C 266.55745073482 100, 280 113.44254926518, 280 130 Z" fill="lightblue"/>
11
+ </svg>
Binary file
@@ -0,0 +1,14 @@
1
+ # A rectangle to "show through" the clipped shape
2
+ rect(200, 40, fill: "purple")[0, 85]
3
+
4
+ # Subtract subsequent shapes from the first square, draw the result
5
+ difference(fill: "red") do
6
+ square(200)
7
+ square(60)[120, 100]
8
+
9
+ # Result of this difference will be used in outer difference
10
+ difference do # (it will be a donut)
11
+ circle(60)[55, 55]
12
+ circle(20)[55, 55]
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="200"
4
+ height="200.0">
5
+
6
+ <rect x="0" y="85" width="200" height="40" fill="purple"/>
7
+ <path d=" M 0.0 200.0 L 0.0 78.95208263397217 L 0.1872720718383789 79.4041976928711 L 1.5396080017089844 82.23942947387695 L 3.0384750366210938 85.0 L 4.679765701293945 87.67834186553955 L 6.458979606628418 90.26711463928223 L 8.371241569519043 92.75922298431396 L 10.411310195922852 95.14783573150635 L 12.573592185974121 97.42640686035156 L 14.852163314819336 99.58868885040283 L 17.24077606201172 101.62875747680664 L 19.732884407043457 103.54101943969727 L 22.321657180786133 105.32023334503174 L 25.0 106.96152400970459 L 27.76056957244873 108.4603910446167 L 30.59580135345459 109.8127269744873 L 33.49792289733887 111.01482486724854 L 36.45897960662842 112.06339073181152 L 39.47085666656494 112.9555492401123 L 42.52529811859131 113.68885517120361 L 45.61393165588379 114.2613000869751 L 48.728291511535645 114.67131328582764 L 51.85984230041504 114.9177713394165 L 55.0 115.0 L 58.140156745910645 114.9177713394165 L 61.27170753479004 114.67131328582764 L 64.3860673904419 114.2613000869751 L 67.47470092773438 113.68885517120361 L 70.52914237976074 112.9555492401123 L 73.54101943969727 112.06339073181152 L 76.50207614898682 111.01482486724854 L 79.4041976928711 109.8127269744873 L 82.23942947387695 108.4603910446167 L 85.0 106.96152400970459 L 87.67834186553955 105.32023334503174 L 90.26711463928223 103.54101943969727 L 92.75922298431396 101.62875747680664 L 95.14783573150635 99.58868885040283 L 97.42640686035156 97.42640686035156 L 99.58868885040283 95.14783573150635 L 101.62875747680664 92.75922298431396 L 103.54101943969727 90.26711463928223 L 105.32023334503174 87.67834186553955 L 106.96152400970459 85.0 L 108.4603910446167 82.23942947387695 L 109.8127269744873 79.4041976928711 L 111.01482486724854 76.50207614898682 L 112.06339073181152 73.54101943969727 L 112.9555492401123 70.52914237976074 L 113.68885517120361 67.47470092773438 L 114.2613000869751 64.3860673904419 L 114.67131328582764 61.27170753479004 L 114.9177713394165 58.140156745910645 L 115.0 55.0 L 114.9177713394165 51.85984230041504 L 114.67131328582764 48.728291511535645 L 114.2613000869751 45.61393165588379 L 113.68885517120361 42.52529811859131 L 112.9555492401123 39.47085666656494 L 112.06339073181152 36.45897960662842 L 111.01482486724854 33.49792289733887 L 109.8127269744873 30.59580135345459 L 108.4603910446167 27.76056957244873 L 106.96152400970459 24.999999046325684 L 105.32023334503174 22.321657180786133 L 103.54101943969727 19.732884407043457 L 101.62875747680664 17.24077606201172 L 99.58868885040283 14.852163314819336 L 97.42640686035156 12.573592185974121 L 95.14783573150635 10.411310195922852 L 92.75922298431396 8.371241569519043 L 90.26711463928223 6.458979606628418 L 87.67834186553955 4.679765701293945 L 84.99999904632568 3.0384750366210938 L 82.23942947387695 1.5396080017089844 L 79.4041976928711 0.1872720718383789 L 78.95208263397217 0.0 L 200.0 0.0 L 200.0 200.0 Z M 120.0 160.0 L 180.0 160.0 L 180.0 100.0 L 120.0 100.0 Z M 55.0 75.0 L 51.871310234069824 74.75376605987549 L 48.81965923309326 74.0211296081543 L 45.92018985748291 72.82013034820557 L 43.24429416656494 71.18033981323242 L 40.857863426208496 69.14213562011719 L 38.81965923309326 66.75570487976074 L 37.17986869812012 64.07980918884277 L 35.97886943817139 61.18033981323242 L 35.246232986450195 58.12868881225586 L 35.0 55.0 L 35.246232986450195 51.871310234069824 L 35.97886943817139 48.81965923309326 L 37.17986869812012 45.92018985748291 L 38.81965923309326 43.24429416656494 L 40.857863426208496 40.857863426208496 L 43.24429416656494 38.81965923309326 L 45.92018985748291 37.17986869812012 L 48.81965923309326 35.97886943817139 L 51.871310234069824 35.246232986450195 L 54.999999046325684 35.0 L 58.12868881225586 35.246232986450195 L 61.18033981323242 35.97886943817139 L 64.07980918884277 37.17986869812012 L 66.75570487976074 38.81965923309326 L 69.14213562011719 40.857863426208496 L 71.18033981323242 43.24429416656494 L 72.82013034820557 45.92018985748291 L 74.0211296081543 48.81965923309326 L 74.75376605987549 51.871310234069824 L 75.0 55.0 L 74.75376605987549 58.12868881225586 L 74.0211296081543 61.18033981323242 L 72.82013034820557 64.07980918884277 L 71.18033981323242 66.75570487976074 L 69.14213562011719 69.14213562011719 L 66.75570487976074 71.18033981323242 L 64.07980918884277 72.82013034820557 L 61.18033981323242 74.0211296081543 L 58.12868881225586 74.75376605987549 Z M 0.0 31.047916412353516 L 0.0 0.0 L 31.047916412353516 0.0 L 30.59580135345459 0.1872720718383789 L 27.76056957244873 1.5396080017089844 L 24.999999046325684 3.0384750366210938 L 22.321657180786133 4.679765701293945 L 19.732884407043457 6.458979606628418 L 17.24077606201172 8.371241569519043 L 14.852163314819336 10.411310195922852 L 12.573592185974121 12.573592185974121 L 10.411310195922852 14.852163314819336 L 8.371241569519043 17.24077606201172 L 6.458979606628418 19.732884407043457 L 4.679765701293945 22.321657180786133 L 3.0384750366210938 25.0 L 1.5396080017089844 27.76056957244873 L 0.1872720718383789 30.59580135345459 Z" fill="red"/>
8
+ </svg>
Binary file
@@ -0,0 +1,32 @@
1
+ U = 20 # "unit", set to 1 for export at real scale, 10 or more for designing
2
+ GRID = true # turn on or off the grid lines
3
+
4
+ # Add ~ method for multiplying a number by the "unit"
5
+ class ::Fixnum
6
+ def ~
7
+ self * U
8
+ end
9
+ end
10
+
11
+ union do
12
+ difference do
13
+ union do
14
+ union do
15
+ (n_teeth = 4).times do |t|
16
+ a = 180.0 / n_teeth * t
17
+ rect(~2, ~16)[~-1, ~-8].rotate(a)
18
+ end
19
+ end
20
+
21
+ circle(~6)
22
+ end
23
+ circle(~4)
24
+ end
25
+
26
+ iso_tri(~6, ~3, fill: :red).flip_x.move(0, ~2)
27
+ end.move(~8, ~8)
28
+
29
+ (1..15).each do |i| # 16px grid
30
+ path([~i, 0], [~i, ~16], stroke: "orange", opacity: 0.6)
31
+ path([0, ~i], [~16, ~i], stroke: "orange", opacity: 0.6)
32
+ end if GRID
@@ -0,0 +1,37 @@
1
+ <svg version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="320.0"
4
+ height="320.0">
5
+
6
+ <path d=" M 140.0 320.0 L 140.0 278.31161403656006 L 138.1317377090454 277.9905881881714 L 135.05059719085693 277.37771129608154 L 131.98655700683594 276.6843900680542 L 128.94171524047852 275.9110984802246 L 125.91815948486328 275.058367729187 L 122.91796112060547 274.12678146362305 L 119.94317722320557 273.1169786453247 L 116.99584674835205 272.0296506881714 L 114.07798862457275 270.8655433654785 L 111.1916036605835 269.6254549026489 L 108.33866882324219 268.3102340698242 L 105.52114009857178 266.9207820892334 L 102.7409496307373 265.45805263519287 L 100.00000095367432 263.9230480194092 L 97.30017280578613 262.316819190979 L 94.6433162689209 260.6404676437378 L 92.03125190734863 258.8951425552368 L 90.48319053649902 257.80108070373535 L 61.00505065917969 287.2792205810547 L 32.72077941894531 258.9949493408203 L 62.19891929626465 229.51680946350098 L 61.104857444763184 227.96874809265137 L 59.35953235626221 225.3566837310791 L 57.683180809020996 222.69982719421387 L 56.07695198059082 220.0 L 54.54194736480713 217.2590503692627 L 53.0792179107666 214.47885990142822 L 51.68976593017578 211.6613311767578 L 50.374545097351074 208.8083963394165 L 49.134456634521484 205.92201137542725 L 47.97034931182861 203.00415325164795 L 46.88302135467529 200.05682277679443 L 45.87321853637695 197.08203887939453 L 44.94163227081299 194.08184051513672 L 44.08890151977539 191.05828475952148 L 43.3156099319458 188.01344299316406 L 42.62228870391846 184.94940280914307 L 42.00941181182861 181.8682622909546 L 41.68838596343994 180.0 L 0.0 180.0 L 0.0 140.00000095367432 L 41.688385009765625 140.00000095367432 L 42.00941181182861 138.1317377090454 L 42.62228870391846 135.05059719085693 L 43.3156099319458 131.98655700683594 L 44.08890151977539 128.94171524047852 L 44.94163227081299 125.91815948486328 L 45.87321853637695 122.91796112060547 L 46.88302135467529 119.94317722320557 L 47.97034931182861 116.99584674835205 L 49.134456634521484 114.07798862457275 L 50.374545097351074 111.1916036605835 L 51.68976593017578 108.33866882324219 L 53.0792179107666 105.52114009857178 L 54.54194736480713 102.7409496307373 L 56.07695198059082 100.00000095367432 L 57.683180809020996 97.30017280578613 L 59.35953235626221 94.6433162689209 L 61.104857444763184 92.03125190734863 L 62.19891929626465 90.48319053649902 L 32.72077941894531 61.00505065917969 L 61.00505065917969 32.72077941894531 L 90.48319053649902 62.19891929626465 L 92.03125190734863 61.104857444763184 L 94.6433162689209 59.35953235626221 L 97.30017280578613 57.683180809020996 L 100.0 56.07695198059082 L 102.7409496307373 54.54194736480713 L 105.52114009857178 53.0792179107666 L 108.33866882324219 51.68976593017578 L 111.1916036605835 50.374545097351074 L 114.07798862457275 49.134456634521484 L 116.99584674835205 47.97034931182861 L 119.94317722320557 46.88302135467529 L 122.91796112060547 45.87321853637695 L 125.91815948486328 44.94163227081299 L 128.94171524047852 44.08890151977539 L 131.98655700683594 43.3156099319458 L 135.05059719085693 42.62228870391846 L 138.1317377090454 42.00941181182861 L 140.0 41.68838596343994 L 140.0 0.0 L 180.0 0.0 L 180.0 41.68838596343994 L 181.8682622909546 42.00941181182861 L 184.94940280914307 42.62228870391846 L 188.01344299316406 43.3156099319458 L 191.05828475952148 44.08890151977539 L 194.08184051513672 44.94163227081299 L 197.08203887939453 45.87321853637695 L 200.05682277679443 46.88302135467529 L 203.00415325164795 47.97034931182861 L 205.92201137542725 49.134456634521484 L 208.8083963394165 50.374545097351074 L 211.6613311767578 51.68976593017578 L 214.47885990142822 53.0792179107666 L 217.2590503692627 54.54194736480713 L 219.99999904632568 56.07695198059082 L 222.69982719421387 57.683180809020996 L 225.3566837310791 59.35953235626221 L 227.96874809265137 61.104857444763184 L 229.51680946350098 62.19891929626465 L 258.9949493408203 32.72077941894531 L 287.2792205810547 61.00505065917969 L 257.80108070373535 90.48319053649902 L 258.8951425552368 92.03125190734863 L 260.6404676437378 94.6433162689209 L 262.316819190979 97.30017280578613 L 263.9230480194092 100.0 L 265.45805263519287 102.7409496307373 L 266.9207820892334 105.52114009857178 L 268.3102340698242 108.33866882324219 L 269.6254549026489 111.1916036605835 L 270.8655433654785 114.07798862457275 L 272.0296506881714 116.99584674835205 L 273.1169786453247 119.94317722320557 L 274.12678146362305 122.91796112060547 L 275.058367729187 125.91815948486328 L 275.9110984802246 128.94171524047852 L 276.6843900680542 131.98655700683594 L 277.37771129608154 135.05059719085693 L 277.9905881881714 138.1317377090454 L 278.31161403656006 140.0 L 320.0 140.0 L 320.0 179.99999904632568 L 278.3116149902344 179.99999904632568 L 277.9905881881714 181.8682622909546 L 277.37771129608154 184.94940280914307 L 276.6843900680542 188.01344299316406 L 275.9110984802246 191.05828475952148 L 275.058367729187 194.08184051513672 L 274.12678146362305 197.08203887939453 L 273.1169786453247 200.05682277679443 L 272.0296506881714 203.00415325164795 L 270.8655433654785 205.92201137542725 L 269.6254549026489 208.8083963394165 L 268.3102340698242 211.6613311767578 L 266.9207820892334 214.47885990142822 L 265.45805263519287 217.2590503692627 L 263.9230480194092 219.99999904632568 L 262.316819190979 222.69982719421387 L 260.6404676437378 225.3566837310791 L 258.8951425552368 227.96874809265137 L 257.80108070373535 229.51680946350098 L 287.2792205810547 258.9949493408203 L 258.9949493408203 287.2792205810547 L 229.51680946350098 257.80108070373535 L 227.96874809265137 258.8951425552368 L 225.3566837310791 260.6404676437378 L 222.69982719421387 262.316819190979 L 220.0 263.9230480194092 L 217.2590503692627 265.45805263519287 L 214.47885990142822 266.9207820892334 L 211.6613311767578 268.3102340698242 L 208.8083963394165 269.6254549026489 L 205.92201137542725 270.8655433654785 L 203.00415325164795 272.0296506881714 L 200.05682277679443 273.1169786453247 L 197.08203887939453 274.12678146362305 L 194.08184051513672 275.058367729187 L 191.05828475952148 275.9110984802246 L 188.01344299316406 276.6843900680542 L 184.94940280914307 277.37771129608154 L 181.8682622909546 277.9905881881714 L 180.0 278.31161403656006 L 180.0 320.0 Z M 160.0 240.0 L 163.14078521728516 239.93832206726074 L 166.27672672271729 239.75338649749756 L 169.40299129486084 239.44547653198242 L 172.51475715637207 239.0150671005249 L 175.60722541809082 238.46282196044922 L 178.67562866210938 237.78959274291992 L 181.71523571014404 236.99641799926758 L 184.7213592529297 236.08452129364014 L 187.68936443328857 235.05530643463135 L 190.61467456817627 233.91036224365234 L 193.49277877807617 232.65145301818848 L 196.31923961639404 231.28052139282227 L 199.0896987915039 229.79967975616455 L 201.79988479614258 228.21121311187744 L 204.44561862945557 226.51756858825684 L 207.02281951904297 224.7213592529297 L 209.52751541137695 222.82535362243652 L 211.95584297180176 220.83247661590576 L 214.3040590286255 218.74580001831055 L 216.56854248046875 216.56854248046875 L 218.74580001831055 214.3040590286255 L 220.83247661590576 211.95584297180176 L 222.82535362243652 209.52751541137695 L 224.7213592529297 207.02281951904297 L 226.51756858825684 204.44561862945557 L 228.21121311187744 201.79988479614258 L 229.79967975616455 199.0896987915039 L 231.28052139282227 196.31923961639404 L 232.65145301818848 193.49277877807617 L 233.91036224365234 190.61467456817627 L 235.05530643463135 187.68936443328857 L 236.08452129364014 184.7213592529297 L 236.99641799926758 181.71523571014404 L 237.78959274291992 178.67562866210938 L 238.46282196044922 175.60722541809082 L 239.0150671005249 172.51475715637207 L 239.44547653198242 169.40299129486084 L 239.75338649749756 166.27672672271729 L 239.93832206726074 163.14078521728516 L 240.0 160.0 L 239.93832206726074 156.85921478271484 L 239.75338649749756 153.72327327728271 L 239.44547653198242 150.59700870513916 L 239.0150671005249 147.48524284362793 L 238.46282196044922 144.39277458190918 L 237.78959274291992 141.32437133789062 L 236.99641799926758 138.28476428985596 L 236.08452129364014 135.2786407470703 L 235.05530643463135 132.31063556671143 L 233.91036224365234 129.38532543182373 L 232.65145301818848 126.50722122192383 L 231.28052139282227 123.68076038360596 L 229.79967975616455 120.9103012084961 L 228.21121311187744 118.20011520385742 L 226.51756858825684 115.55438137054443 L 224.7213592529297 112.97718048095703 L 222.82535362243652 110.47248458862305 L 220.83247661590576 108.04415702819824 L 218.74580001831055 105.69594097137451 L 216.56854248046875 103.43145751953125 L 214.3040590286255 101.25419998168945 L 211.95584297180176 99.16752338409424 L 209.52751541137695 97.17464637756348 L 207.02281951904297 95.27864074707031 L 204.44561862945557 93.48243141174316 L 201.79988479614258 91.78878688812256 L 199.0896987915039 90.20032024383545 L 196.31923961639404 88.71947860717773 L 193.49277877807617 87.34854698181152 L 190.61467456817627 86.08963775634766 L 187.68936443328857 84.94469356536865 L 184.7213592529297 83.91547870635986 L 181.71523571014404 83.00358200073242 L 178.67562866210938 82.21040725708008 L 175.60722541809082 81.53717803955078 L 172.51475715637207 80.9849328994751 L 169.40299129486084 80.55452346801758 L 166.27672672271729 80.24661350250244 L 163.14078521728516 80.06167793273926 L 160.0 80.0 L 156.85921478271484 80.06167793273926 L 153.72327327728271 80.24661350250244 L 150.59700870513916 80.55452346801758 L 147.48524284362793 80.9849328994751 L 144.39277458190918 81.53717803955078 L 141.32437133789062 82.21040725708008 L 138.28476428985596 83.00358200073242 L 135.2786407470703 83.91547870635986 L 132.31063556671143 84.94469356536865 L 129.38532543182373 86.08963775634766 L 126.50722122192383 87.34854698181152 L 123.68076038360596 88.71947860717773 L 120.9103012084961 90.20032024383545 L 118.20011520385742 91.78878688812256 L 115.55438137054443 93.48243141174316 L 112.97718048095703 95.27864074707031 L 110.47248458862305 97.17464637756348 L 108.04415702819824 99.16752338409424 L 105.69594097137451 101.25419998168945 L 103.43145751953125 103.43145751953125 L 101.25419998168945 105.69594097137451 L 99.16752338409424 108.04415702819824 L 97.17464637756348 110.47248458862305 L 95.27864074707031 112.97718048095703 L 93.48243141174316 115.55438137054443 L 91.78878688812256 118.20011520385742 L 90.20032024383545 120.9103012084961 L 88.71947860717773 123.68076038360596 L 87.34854698181152 126.50722122192383 L 86.08963775634766 129.38532543182373 L 84.94469356536865 132.31063556671143 L 83.91547870635986 135.2786407470703 L 83.00358200073242 138.28476428985596 L 82.21040725708008 141.32437133789062 L 81.53717803955078 144.39277458190918 L 80.9849328994751 147.48524284362793 L 80.55452346801758 150.59700870513916 L 80.24661350250244 153.72327327728271 L 80.06167793273926 156.85921478271484 L 80.0 160.0 L 80.06167793273926 163.14078521728516 L 80.24661350250244 166.27672672271729 L 80.55452346801758 169.40299129486084 L 80.9849328994751 172.51475715637207 L 81.53717803955078 175.60722541809082 L 82.21040725708008 178.67562866210938 L 83.00358200073242 181.71523571014404 L 83.91547870635986 184.7213592529297 L 84.94469356536865 187.68936443328857 L 86.08963775634766 190.61467456817627 L 87.34854698181152 193.49277877807617 L 88.71947860717773 196.31923961639404 L 90.20032024383545 199.0896987915039 L 91.78878688812256 201.79988479614258 L 93.48243141174316 204.44561862945557 L 95.27864074707031 207.02281951904297 L 97.17464637756348 209.52751541137695 L 99.16752338409424 211.95584297180176 L 101.25419998168945 214.3040590286255 L 103.43145751953125 216.56854248046875 L 105.69594097137451 218.74580001831055 L 108.04415702819824 220.83247661590576 L 110.47248458862305 222.82535362243652 L 112.97718048095703 224.7213592529297 L 115.55438137054443 226.51756858825684 L 118.20011520385742 228.21121311187744 L 120.9103012084961 229.79967975616455 L 123.68076038360596 231.28052139282227 L 126.50722122192383 232.65145301818848 L 129.38532543182373 233.91036224365234 L 132.31063556671143 235.05530643463135 L 135.2786407470703 236.08452129364014 L 138.28476428985596 236.99641799926758 L 141.32437133789062 237.78959274291992 L 144.39277458190918 238.46282196044922 L 147.48524284362793 239.0150671005249 L 150.59700870513916 239.44547653198242 L 153.72327327728271 239.75338649749756 L 156.85921478271484 239.93832206726074 Z M 160.0 200.0 L 100.0 140.0 L 220.0 140.0 Z"/>
7
+ <path d="M 20 0 L 20 320 Z" stroke="orange" opacity="0.6"/>
8
+ <path d="M 0 20 L 320 20 Z" stroke="orange" opacity="0.6"/>
9
+ <path d="M 40 0 L 40 320 Z" stroke="orange" opacity="0.6"/>
10
+ <path d="M 0 40 L 320 40 Z" stroke="orange" opacity="0.6"/>
11
+ <path d="M 60 0 L 60 320 Z" stroke="orange" opacity="0.6"/>
12
+ <path d="M 0 60 L 320 60 Z" stroke="orange" opacity="0.6"/>
13
+ <path d="M 80 0 L 80 320 Z" stroke="orange" opacity="0.6"/>
14
+ <path d="M 0 80 L 320 80 Z" stroke="orange" opacity="0.6"/>
15
+ <path d="M 100 0 L 100 320 Z" stroke="orange" opacity="0.6"/>
16
+ <path d="M 0 100 L 320 100 Z" stroke="orange" opacity="0.6"/>
17
+ <path d="M 120 0 L 120 320 Z" stroke="orange" opacity="0.6"/>
18
+ <path d="M 0 120 L 320 120 Z" stroke="orange" opacity="0.6"/>
19
+ <path d="M 140 0 L 140 320 Z" stroke="orange" opacity="0.6"/>
20
+ <path d="M 0 140 L 320 140 Z" stroke="orange" opacity="0.6"/>
21
+ <path d="M 160 0 L 160 320 Z" stroke="orange" opacity="0.6"/>
22
+ <path d="M 0 160 L 320 160 Z" stroke="orange" opacity="0.6"/>
23
+ <path d="M 180 0 L 180 320 Z" stroke="orange" opacity="0.6"/>
24
+ <path d="M 0 180 L 320 180 Z" stroke="orange" opacity="0.6"/>
25
+ <path d="M 200 0 L 200 320 Z" stroke="orange" opacity="0.6"/>
26
+ <path d="M 0 200 L 320 200 Z" stroke="orange" opacity="0.6"/>
27
+ <path d="M 220 0 L 220 320 Z" stroke="orange" opacity="0.6"/>
28
+ <path d="M 0 220 L 320 220 Z" stroke="orange" opacity="0.6"/>
29
+ <path d="M 240 0 L 240 320 Z" stroke="orange" opacity="0.6"/>
30
+ <path d="M 0 240 L 320 240 Z" stroke="orange" opacity="0.6"/>
31
+ <path d="M 260 0 L 260 320 Z" stroke="orange" opacity="0.6"/>
32
+ <path d="M 0 260 L 320 260 Z" stroke="orange" opacity="0.6"/>
33
+ <path d="M 280 0 L 280 320 Z" stroke="orange" opacity="0.6"/>
34
+ <path d="M 0 280 L 320 280 Z" stroke="orange" opacity="0.6"/>
35
+ <path d="M 300 0 L 300 320 Z" stroke="orange" opacity="0.6"/>
36
+ <path d="M 0 300 L 320 300 Z" stroke="orange" opacity="0.6"/>
37
+ </svg>
Binary file
@@ -0,0 +1,21 @@
1
+ rect 400, 300, fill: :none
2
+
3
+ path(
4
+ n1 = N.n(20, 280),
5
+ h1 = N.c(150, 100),
6
+ h2 = N.c(350, 50),
7
+ n2 = N.n(380, 280),
8
+ closed: false,
9
+ fill: :red,
10
+ stroke: :black,
11
+ stroke_width: 4
12
+ )
13
+
14
+ path(n1, N.n(*h1.at), closed: false, stroke: :blue, stroke_width: 2)
15
+ circle(4, fill: :blue)[*h1.at]
16
+
17
+ path(n2, N.n(*h2.at), closed: false, stroke: :blue, stroke_width: 2)
18
+ circle(4, fill: :blue)[*h2.at]
19
+
20
+ circle(4, fill: :green)[*n1.at]
21
+ circle(4, fill: :green)[*n2.at]