vector_salad 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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]