all of it

This commit is contained in:
Sam 2022-06-29 17:00:23 +12:00
parent 8c535fd8c4
commit afbf37b27a
7 changed files with 609 additions and 0 deletions

1
showcase/polyA.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

36
showcase/polyAOrig.svg Normal file
View File

@ -0,0 +1,36 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Generated by CodeCogs with dvisvgm 2.11.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='233.883256pt' height='49.533176pt' viewBox='-.239051 -.227979 233.883256 49.533176'>
<defs>
<path id='g0-0' d='M13.616601-4.75238C13.967864-4.75238 14.33979-4.75238 14.33979-5.16563S13.967864-5.578881 13.616601-5.578881H2.438177C2.086915-5.578881 1.714989-5.578881 1.714989-5.16563S2.086915-4.75238 2.438177-4.75238H13.616601Z'/>
<path id='g0-2' d='M8.037721-5.744181L3.905216-9.856023C3.657266-10.103973 3.615941-10.145298 3.450641-10.145298C3.244016-10.145298 3.037391-9.959335 3.037391-9.732047C3.037391-9.58741 3.078716-9.546085 3.306003-9.318797L7.438508-5.16563L3.306003-1.012464C3.078716-.785176 3.037391-.743851 3.037391-.599213C3.037391-.371925 3.244016-.185963 3.450641-.185963C3.615941-.185963 3.657266-.227288 3.905216-.475238L8.017058-4.58708L12.2942-.309938C12.335525-.289275 12.480163-.185963 12.604138-.185963C12.852088-.185963 13.017388-.371925 13.017388-.599213C13.017388-.640538 13.017388-.723188 12.955401-.826501C12.934738-.867826 9.649397-4.111842 8.616271-5.16563L12.397513-8.946872C12.500825-9.070847 12.810763-9.33946 12.914076-9.463435C12.934738-9.50476 13.017388-9.58741 13.017388-9.732047C13.017388-9.959335 12.852088-10.145298 12.604138-10.145298C12.438838-10.145298 12.356188-10.062648 12.1289-9.83536L8.037721-5.744181Z'/>
<path id='g2-40' d='M6.322731 5.041655C6.322731 5.020993 6.322731 4.979668 6.260744 4.91768C5.310268 3.946542 2.768778 1.301739 2.768778-5.144968S5.268943-14.215814 6.281406-15.248941C6.281406-15.269603 6.322731-15.310928 6.322731-15.372916S6.260744-15.476228 6.178094-15.476228C5.950806-15.476228 4.194492-13.947202 3.182028-11.674324C2.148902-9.380785 1.859627-7.149232 1.859627-5.16563C1.859627-3.677929 2.004265-1.157101 3.244016 1.508364C4.235817 3.657266 5.930144 5.16563 6.178094 5.16563C6.281406 5.16563 6.322731 5.124305 6.322731 5.041655Z'/>
<path id='g2-41' d='M5.434243-5.144968C5.434243-6.632669 5.289605-9.153497 4.049854-11.818962C3.058053-13.967864 1.363726-15.476228 1.115776-15.476228C1.053789-15.476228 .971138-15.455566 .971138-15.352253C.971138-15.310928 .991801-15.290266 1.012464-15.248941C2.004265-14.215814 4.525092-11.591674 4.525092-5.16563C4.525092 1.281076 2.024927 3.905216 1.012464 4.938343C.991801 4.979668 .971138 5.00033 .971138 5.041655C.971138 5.144968 1.053789 5.16563 1.115776 5.16563C1.343064 5.16563 3.099378 3.636604 4.111842 1.363726C5.144968-.929813 5.434243-3.161366 5.434243-5.144968Z'/>
<path id='g2-48' d='M8.678259-6.632669C8.678259-7.893083 8.657596-10.041985 7.78977-11.694987C7.025257-13.141363 5.806168-13.657926 4.731717-13.657926C3.739916-13.657926 2.479503-13.203351 1.694327-11.715649C.867826-10.16596 .785176-8.244346 .785176-6.632669C.785176-5.454906 .805838-3.657266 1.446376-2.086915C2.334865 .041325 3.925879 .3306 4.731717 .3306C5.682193 .3306 7.12857-.061988 7.975733-2.024927C8.595609-3.450641 8.678259-5.124305 8.678259-6.632669ZM4.731717 0C3.409316 0 2.62414-1.136439 2.334865-2.70679C2.107577-3.925879 2.107577-5.702856 2.107577-6.859957C2.107577-8.450971 2.107577-9.773372 2.37619-11.033786C2.768778-12.790101 3.925879-13.327326 4.731717-13.327326C5.578881-13.327326 6.673994-12.769438 7.066582-11.075111C7.335195-9.897348 7.355857-8.512959 7.355857-6.859957C7.355857-5.516893 7.355857-3.863891 7.107907-2.644803C6.673994-.392588 5.454906 0 4.731717 0Z'/>
<path id='g2-49' d='M5.496231-13.203351C5.496231-13.637264 5.475568-13.657926 5.186293-13.657926C4.380454-12.686788 3.161366-12.37685 2.004265-12.335525C1.942277-12.335525 1.838964-12.335525 1.818302-12.2942S1.797639-12.21155 1.797639-11.777637C2.438177-11.777637 3.512629-11.901612 4.339129-12.397513V-1.508364C4.339129-.785176 4.297804-.537226 2.520828-.537226H1.900952V0C2.892753-.020663 3.925879-.041325 4.91768-.041325S6.942607-.020663 7.934408 0V-.537226H7.314532C5.537556-.537226 5.496231-.764513 5.496231-1.508364V-13.203351Z'/>
<path id='g2-50' d='M8.616271-3.202691H8.244346C8.037721-1.735652 7.872421-1.487702 7.78977-1.363726C7.686458-1.198426 6.198756-1.198426 5.909481-1.198426H1.942277C2.686128-2.004265 4.132504-3.471304 5.888818-5.16563C7.149232-6.364056 8.616271-7.769108 8.616271-9.814697C8.616271-12.252875 6.673994-13.657926 4.50443-13.657926C2.231552-13.657926 .847163-11.653662 .847163-9.794035C.847163-8.988197 1.446376-8.884884 1.694327-8.884884C1.900952-8.884884 2.520828-9.008859 2.520828-9.732047C2.520828-10.372586 1.983602-10.558548 1.694327-10.558548C1.570352-10.558548 1.446376-10.537886 1.363726-10.496561C1.756314-12.252875 2.954741-13.120701 4.215154-13.120701C6.012794-13.120701 7.190557-11.694987 7.190557-9.814697C7.190557-8.017058 6.136769-6.467369 4.959005-5.124305L.847163-.475238V0H8.120371L8.616271-3.202691Z'/>
<path id='g2-56' d='M5.620206-7.438508C6.921945-8.099708 8.244346-9.091509 8.244346-10.682523C8.244346-12.562813 6.426044-13.657926 4.75238-13.657926C2.87209-13.657926 1.219089-12.2942 1.219089-10.413911C1.219089-9.897348 1.343064-9.008859 2.148902-8.223683C2.355527-8.017058 3.223353-7.397183 3.781241-7.004595C2.851428-6.529357 .681863-5.392918 .681863-3.120041C.681863-.991801 2.70679 .3306 4.711055 .3306C6.921945 .3306 8.781571-1.260414 8.781571-3.367991C8.781571-5.24828 7.521158-6.116106 6.694657-6.673994L5.620206-7.438508ZM2.913415-9.256809C2.748115-9.360122 1.921614-10.00066 1.921614-10.971799C1.921614-12.232212 3.223353-13.182688 4.711055-13.182688C6.343394-13.182688 7.54182-12.025587 7.54182-10.682523C7.54182-8.760909 5.392918-7.665795 5.289605-7.665795C5.268943-7.665795 5.24828-7.665795 5.08298-7.78977L2.913415-9.256809ZM6.715319-5.020993C7.025257-4.793705 8.017058-4.111842 8.017058-2.851428C8.017058-1.322401 6.488032-.1653 4.75238-.1653C2.87209-.1653 1.446376-1.508364 1.446376-3.140703S2.70679-6.136769 4.132504-6.777307L6.715319-5.020993Z'/>
<path id='g2-61' d='M13.286001-6.632669C13.595939-6.632669 13.905877-6.632669 13.905877-6.983932C13.905877-7.355857 13.554614-7.355857 13.203351-7.355857H1.653002C1.301739-7.355857 .950476-7.355857 .950476-6.983932C.950476-6.632669 1.260414-6.632669 1.570352-6.632669H13.286001ZM13.203351-2.954741C13.554614-2.954741 13.905877-2.954741 13.905877-3.326666C13.905877-3.677929 13.595939-3.677929 13.286001-3.677929H1.570352C1.260414-3.677929 .950476-3.677929 .950476-3.326666C.950476-2.954741 1.301739-2.954741 1.653002-2.954741H13.203351Z'/>
<path id='g1-97' d='M6.219419-2.45884C6.116106-2.107577 6.116106-2.066252 5.826831-1.673664C5.372255-1.095114 4.463105-.206625 3.491966-.206625C2.644803-.206625 2.169565-.971138 2.169565-2.190227C2.169565-3.326666 2.810103-5.640868 3.202691-6.508694C3.905216-7.955071 4.876355-8.698921 5.682193-8.698921C7.04592-8.698921 7.314532-7.004595 7.314532-6.839294C7.314532-6.818632 7.252545-6.550019 7.231882-6.508694L6.219419-2.45884ZM7.54182-7.748445C7.314532-8.285671 6.756644-9.112172 5.682193-9.112172C3.347328-9.112172 .826501-6.095444 .826501-3.037391C.826501-.991801 2.024927 .206625 3.429978 .206625C4.566417 .206625 5.537556-.681863 6.116106-1.363726C6.322731-.144638 7.29387 .206625 7.913746 .206625S9.029522-.1653 9.401447-.909151C9.732047-1.611677 10.021323-2.87209 10.021323-2.954741C10.021323-3.058053 9.938673-3.140703 9.814697-3.140703C9.628735-3.140703 9.608072-3.037391 9.525422-2.727453C9.215484-1.508364 8.822896-.206625 7.975733-.206625C7.37652-.206625 7.335195-.743851 7.335195-1.157101C7.335195-1.632339 7.397183-1.859627 7.583145-2.665465C7.727783-3.182028 7.831095-3.636604 7.996396-4.235817C8.760909-7.335195 8.946872-8.079046 8.946872-8.203021C8.946872-8.492296 8.719584-8.719584 8.409646-8.719584C7.748445-8.719584 7.583145-7.996396 7.54182-7.748445Z'/>
<path id='g1-110' d='M4.256479-6.054119C4.297804-6.178094 4.814367-7.21122 5.578881-7.872421C6.116106-8.368321 6.818632-8.698921 7.62447-8.698921C8.450971-8.698921 8.740246-8.079046 8.740246-7.252545C8.740246-6.074781 7.893083-3.719254 7.479833-2.603478C7.29387-2.107577 7.190557-1.838964 7.190557-1.467039C7.190557-.537226 7.831095 .206625 8.822896 .206625C10.744511 .206625 11.467699-2.830765 11.467699-2.954741C11.467699-3.058053 11.385049-3.140703 11.261074-3.140703C11.075111-3.140703 11.054449-3.078716 10.951136-2.727453C10.475898-1.033126 9.690722-.206625 8.884884-.206625C8.678259-.206625 8.347658-.227288 8.347658-.888488C8.347658-1.405051 8.574946-2.024927 8.698921-2.314202C9.112172-3.450641 9.979998-5.764843 9.979998-6.942607C9.979998-8.182358 9.256809-9.112172 7.686458-9.112172C5.847493-9.112172 4.876355-7.810433 4.50443-7.29387C4.442442-8.471634 3.595279-9.112172 2.686128-9.112172C2.024927-9.112172 1.570352-8.719584 1.219089-8.017058C.847163-7.273207 .557888-6.033456 .557888-5.950806S.640538-5.764843 .785176-5.764843C.950476-5.764843 .971138-5.785506 1.095114-6.260744C1.425714-7.521158 1.797639-8.698921 2.62414-8.698921C3.099378-8.698921 3.264678-8.368321 3.264678-7.748445C3.264678-7.29387 3.058053-6.488032 2.913415-5.847493L2.334865-3.615941C2.252215-3.223353 2.024927-2.29354 1.921614-1.921614C1.776977-1.384389 1.549689-.41325 1.549689-.309938C1.549689-.020663 1.776977 .206625 2.086915 .206625C2.334865 .206625 2.62414 .08265 2.78944-.227288C2.830765-.3306 3.016728-1.053789 3.120041-1.467039L3.574616-3.326666L4.256479-6.054119Z'/>
</defs>
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -61.022336)'>
<use x='56.413267' y='83.254902' xlink:href='#g1-97'/>
<use x='72.773367' y='83.254902' xlink:href='#g2-61'/>
<use x='93.386603' y='83.254902' xlink:href='#g2-49'/>
<use x='102.86281' y='83.254902' xlink:href='#g2-56'/>
<use x='112.339018' y='83.254902' xlink:href='#g2-48'/>
<use x='126.406893' y='83.254902' xlink:href='#g0-0'/>
<use x='148.264982' y='69.276544' xlink:href='#g2-40'/>
<use x='155.582216' y='69.276544' xlink:href='#g1-110'/>
<use x='172.250799' y='69.276544' xlink:href='#g0-0'/>
<use x='192.913373' y='69.276544' xlink:href='#g2-50'/>
<use x='202.389581' y='69.276544' xlink:href='#g2-41'/>
<use x='214.298483' y='69.276544' xlink:href='#g0-2'/>
<use x='234.961057' y='69.276544' xlink:href='#g2-49'/>
<use x='244.437265' y='69.276544' xlink:href='#g2-56'/>
<use x='253.913472' y='69.276544' xlink:href='#g2-48'/>
<rect x='148.264982' y='77.676031' height='.826475' width='115.124618'/>
<use x='199.788839' y='97.42836' xlink:href='#g1-110'/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

1
showcase/polyB.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

76
showcase/polyBOrig.svg Normal file
View File

@ -0,0 +1,76 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Generated by CodeCogs with dvisvgm 2.11.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='368.891577pt' height='55.636985pt' viewBox='-.239051 -.226535 368.891577 55.636985'>
<defs>
<path id='g3-48' d='M6.427096-4.590783C6.427096-5.781517 6.355365-6.943559 5.838902-8.03387C5.250708-9.224604 4.217782-9.54022 3.514818-9.54022C2.682739-9.54022 1.664159-9.12418 1.133349-7.933446C.731656-7.029636 .588194-6.140172 .588194-4.590783C.588194-3.199202 .688617-2.151929 1.20508-1.133349C1.764582-.043039 2.75447 .30127 3.500472 .30127C4.748591 .30127 5.465901-.444732 5.88194-1.276811C6.398403-2.352776 6.427096-3.758703 6.427096-4.590783ZM3.500472 .014346C3.041393 .014346 2.108891-.243885 1.836313-1.807621C1.678505-2.668392 1.678505-3.758703 1.678505-4.762937C1.678505-5.939325 1.678505-7.000943 1.908044-7.847369C2.151929-8.808564 2.883585-9.253296 3.500472-9.253296C4.045627-9.253296 4.877707-8.923334 5.150284-7.689561C5.336785-6.871828 5.336785-5.738478 5.336785-4.762937C5.336785-3.801742 5.336785-2.711431 5.178977-1.836313C4.906399-.258232 4.002589 .014346 3.500472 .014346Z'/>
<path id='g3-49' d='M4.131704-9.195911C4.131704-9.525874 4.131704-9.54022 3.84478-9.54022C3.500472-9.152873 2.783162-8.622064 1.305504-8.622064V-8.206024C1.635466-8.206024 2.352776-8.206024 3.141817-8.579025V-1.104657C3.141817-.588194 3.098778-.41604 1.836313-.41604H1.391581V0C1.778928-.028692 3.170509-.028692 3.643934-.028692S5.494593-.028692 5.88194 0V-.41604H5.437208C4.174743-.41604 4.131704-.588194 4.131704-1.104657V-9.195911Z'/>
<path id='g3-50' d='M6.312326-2.410161H5.99671C5.953671-2.166276 5.838902-1.377235 5.69544-1.147696C5.595016-1.01858 4.777283-1.01858 4.346897-1.01858H1.692851C2.080198-1.348542 2.955316-2.266699 3.328317-2.611008C5.508939-4.619475 6.312326-5.365477 6.312326-6.785751C6.312326-8.435563 5.006822-9.54022 3.342664-9.54022S.702964-8.119947 .702964-6.886174C.702964-6.154518 1.334196-6.154518 1.377235-6.154518C1.678505-6.154518 2.051506-6.369711 2.051506-6.828789C2.051506-7.230483 1.778928-7.50306 1.377235-7.50306C1.248119-7.50306 1.219427-7.50306 1.176388-7.488714C1.448966-8.464255 2.22366-9.12418 3.156163-9.12418C4.37559-9.12418 5.121592-8.105601 5.121592-6.785751C5.121592-5.566324 4.418628-4.504705 3.600895-3.586549L.702964-.344309V0H5.939325L6.312326-2.410161Z'/>
<path id='g3-56' d='M4.275166-5.178977C4.992476-5.566324 6.039748-6.226249 6.039748-7.431329C6.039748-8.679448 4.834668-9.54022 3.514818-9.54022C2.094545-9.54022 .975541-8.492948 .975541-7.187444C.975541-6.699673 1.119003-6.211903 1.520697-5.724132C1.678505-5.537632 1.692851-5.523285 2.697085-4.820322C1.305504-4.174743 .588194-3.213548 .588194-2.166276C.588194-.645579 2.03716 .30127 3.500472 .30127C5.092899 .30127 6.427096-.875118 6.427096-2.381468C6.427096-3.84478 5.39417-4.490359 4.275166-5.178977ZM2.324084-6.470134C2.137583-6.59925 1.563735-6.972251 1.563735-7.675215C1.563735-8.607717 2.539277-9.195911 3.500472-9.195911C4.533398-9.195911 5.451554-8.449909 5.451554-7.416983C5.451554-6.541865 4.820322-5.838902 3.988242-5.379823L2.324084-6.470134ZM2.998355-4.619475L4.734245-3.486126C5.107246-3.24224 5.767171-2.797508 5.767171-1.92239C5.767171-.832079 4.662514-.086077 3.514818-.086077C2.295391-.086077 1.248119-.975541 1.248119-2.166276C1.248119-3.285279 2.065852-4.189089 2.998355-4.619475Z'/>
<path id='g1-25' d='M3.715665-5.408516H5.336785C4.949438-3.801742 4.705552-2.75447 4.705552-1.606774C4.705552-1.405927 4.705552 .143462 5.293746 .143462C5.595016 .143462 5.853248-.129116 5.853248-.373001C5.853248-.444732 5.853248-.473424 5.752824-.688617C5.365477-1.678505 5.365477-2.912278 5.365477-3.012701C5.365477-3.098778 5.365477-4.117358 5.666747-5.408516H7.273521C7.460022-5.408516 7.933446-5.408516 7.933446-5.867594C7.933446-6.18321 7.660868-6.18321 7.402637-6.18321H2.682739C2.352776-6.18321 1.865005-6.18321 1.20508-5.480247C.832079-5.064207 .373001-4.303859 .373001-4.217782S.444732-4.103012 .530809-4.103012C.631233-4.103012 .645579-4.146051 .71731-4.232128C1.463312-5.408516 2.209314-5.408516 2.567969-5.408516H3.385702C3.070086-4.332551 2.711431-3.084432 1.535043-.573848C1.420273-.344309 1.420273-.315616 1.420273-.229539C1.420273 .071731 1.678505 .143462 1.807621 .143462C2.22366 .143462 2.33843-.229539 2.510584-.832079C2.740123-1.563735 2.740123-1.592428 2.883585-2.166276L3.715665-5.408516Z'/>
<path id='g1-58' d='M2.6397-.688617C2.6397-1.104657 2.295391-1.391581 1.951083-1.391581C1.535043-1.391581 1.248119-1.047272 1.248119-.702964C1.248119-.286924 1.592428 0 1.936736 0C2.352776 0 2.6397-.344309 2.6397-.688617Z'/>
<path id='g1-97' d='M4.318205-1.707197C4.246474-1.463312 4.246474-1.43462 4.045627-1.162042C3.730011-.760348 3.098778-.143462 2.424507-.143462C1.836313-.143462 1.506351-.674271 1.506351-1.520697C1.506351-2.309738 1.951083-3.916511 2.22366-4.519052C2.711431-5.523285 3.385702-6.039748 3.945204-6.039748C4.892053-6.039748 5.078553-4.86336 5.078553-4.748591C5.078553-4.734245 5.035515-4.547744 5.021168-4.519052L4.318205-1.707197ZM5.236361-5.379823C5.078553-5.752824 4.691206-6.326672 3.945204-6.326672C2.324084-6.326672 .573848-4.232128 .573848-2.108891C.573848-.688617 1.405927 .143462 2.381468 .143462C3.170509 .143462 3.84478-.473424 4.246474-.946849C4.389936-.100423 5.064207 .143462 5.494593 .143462S6.269288-.11477 6.527519-.631233C6.757058-1.119003 6.957905-1.994121 6.957905-2.051506C6.957905-2.123237 6.90052-2.180622 6.814443-2.180622C6.685327-2.180622 6.670981-2.108891 6.613596-1.893698C6.398403-1.047272 6.125826-.143462 5.537632-.143462C5.121592-.143462 5.092899-.516463 5.092899-.803387C5.092899-1.133349 5.135938-1.291158 5.265054-1.850659C5.365477-2.209314 5.437208-2.52493 5.551978-2.94097C6.082787-5.092899 6.211903-5.609363 6.211903-5.69544C6.211903-5.896286 6.054095-6.054095 5.838902-6.054095C5.379823-6.054095 5.265054-5.551978 5.236361-5.379823Z'/>
<path id='g1-98' d='M3.313971-9.597605C3.328317-9.65499 3.35701-9.741067 3.35701-9.812798C3.35701-9.95626 3.213548-9.95626 3.184855-9.95626C3.170509-9.95626 2.654046-9.913221 2.395815-9.884529C2.151929-9.870183 1.936736-9.84149 1.678505-9.827144C1.334196-9.798452 1.233773-9.784105 1.233773-9.525874C1.233773-9.382412 1.377235-9.382412 1.520697-9.382412C2.252353-9.382412 2.252353-9.253296 2.252353-9.109834C2.252353-9.009411 2.137583-8.593371 2.080198-8.33514L1.73589-6.957905C1.592428-6.384057 .774695-3.127471 .71731-2.869239C.645579-2.510584 .645579-2.266699 .645579-2.080198C.645579-.616886 1.463312 .143462 2.395815 .143462C4.059973 .143462 5.781517-1.994121 5.781517-4.07432C5.781517-5.39417 5.035515-6.326672 3.95955-6.326672C3.213548-6.326672 2.539277-5.709786 2.266699-5.422862L3.313971-9.597605ZM2.410161-.143462C1.951083-.143462 1.448966-.487771 1.448966-1.606774C1.448966-2.080198 1.492004-2.352776 1.750236-3.35701C1.793274-3.54351 2.022814-4.461667 2.080198-4.648167C2.108891-4.762937 2.955316-6.039748 3.930858-6.039748C4.56209-6.039748 4.849014-5.408516 4.849014-4.662514C4.849014-3.973896 4.447321-2.352776 4.088666-1.606774C3.730011-.832079 3.070086-.143462 2.410161-.143462Z'/>
<path id='g1-105' d='M4.059973-2.051506C4.059973-2.123237 4.002589-2.180622 3.916511-2.180622C3.787396-2.180622 3.773049-2.137583 3.701318-1.893698C3.328317-.588194 2.740123-.143462 2.266699-.143462C2.094545-.143462 1.893698-.186501 1.893698-.616886C1.893698-1.004234 2.065852-1.43462 2.22366-1.865005L3.227894-4.533398C3.270933-4.648167 3.371356-4.906399 3.371356-5.178977C3.371356-5.781517 2.94097-6.326672 2.238007-6.326672C.918157-6.326672 .387347-4.246474 .387347-4.131704C.387347-4.07432 .444732-4.002589 .545155-4.002589C.674271-4.002589 .688617-4.059973 .746002-4.26082C1.090311-5.465901 1.635466-6.039748 2.194968-6.039748C2.324084-6.039748 2.567969-6.025402 2.567969-5.566324C2.567969-5.193323 2.381468-4.719898 2.266699-4.404282L1.262465-1.73589C1.176388-1.506351 1.090311-1.276811 1.090311-1.01858C1.090311-.373001 1.535043 .143462 2.22366 .143462C3.54351 .143462 4.059973-1.951083 4.059973-2.051506ZM3.945204-8.952026C3.945204-9.167219 3.773049-9.425451 3.457433-9.425451C3.127471-9.425451 2.75447-9.109834 2.75447-8.736833C2.75447-8.378178 3.05574-8.263409 3.227894-8.263409C3.615241-8.263409 3.945204-8.63641 3.945204-8.952026Z'/>
<path id='g1-110' d='M2.955316-4.203435C2.984009-4.289513 3.342664-5.006822 3.873473-5.465901C4.246474-5.810209 4.734245-6.039748 5.293746-6.039748C5.867594-6.039748 6.068441-5.609363 6.068441-5.035515C6.068441-4.217782 5.480247-2.582315 5.193323-1.807621C5.064207-1.463312 4.992476-1.276811 4.992476-1.01858C4.992476-.373001 5.437208 .143462 6.125826 .143462C7.460022 .143462 7.962139-1.965429 7.962139-2.051506C7.962139-2.123237 7.904754-2.180622 7.818677-2.180622C7.689561-2.180622 7.675215-2.137583 7.603484-1.893698C7.273521-.71731 6.728366-.143462 6.168864-.143462C6.025402-.143462 5.795863-.157808 5.795863-.616886C5.795863-.975541 5.953671-1.405927 6.039748-1.606774C6.326672-2.395815 6.929213-4.002589 6.929213-4.820322C6.929213-5.681093 6.427096-6.326672 5.336785-6.326672C4.059973-6.326672 3.385702-5.422862 3.127471-5.064207C3.084432-5.88194 2.496238-6.326672 1.865005-6.326672C1.405927-6.326672 1.090311-6.054095 .846426-5.566324C.588194-5.049861 .387347-4.189089 .387347-4.131704S.444732-4.002589 .545155-4.002589C.659925-4.002589 .674271-4.016935 .760348-4.346897C.989888-5.222015 1.248119-6.039748 1.821967-6.039748C2.151929-6.039748 2.266699-5.810209 2.266699-5.379823C2.266699-5.064207 2.123237-4.504705 2.022814-4.059973L1.62112-2.510584C1.563735-2.238007 1.405927-1.592428 1.334196-1.334196C1.233773-.961195 1.075965-.286924 1.075965-.215193C1.075965-.014346 1.233773 .143462 1.448966 .143462C1.62112 .143462 1.821967 .057385 1.936736-.157808C1.965429-.229539 2.094545-.731656 2.166276-1.01858L2.481892-2.309738L2.955316-4.203435Z'/>
<path id='g1-115' d='M3.270933-2.869239C3.514818-2.826201 3.902165-2.740123 3.988242-2.725777C4.174743-2.668392 4.820322-2.438853 4.820322-1.750236C4.820322-1.305504 4.418628-.143462 2.75447-.143462C2.453199-.143462 1.377235-.186501 1.090311-.975541C1.664159-.90381 1.951083-1.348542 1.951083-1.664159C1.951083-1.965429 1.750236-2.123237 1.463312-2.123237C1.147696-2.123237 .731656-1.879352 .731656-1.233773C.731656-.387347 1.592428 .143462 2.740123 .143462C4.920745 .143462 5.566324-1.463312 5.566324-2.209314C5.566324-2.424507 5.566324-2.826201 5.107246-3.285279C4.748591-3.629588 4.404282-3.701318 3.629588-3.859127C3.24224-3.945204 2.625354-4.07432 2.625354-4.719898C2.625354-5.006822 2.883585-6.039748 4.246474-6.039748C4.849014-6.039748 5.437208-5.810209 5.58067-5.293746C4.949438-5.293746 4.920745-4.748591 4.920745-4.734245C4.920745-4.432974 5.193323-4.346897 5.322439-4.346897C5.523285-4.346897 5.924979-4.504705 5.924979-5.107246S5.379823-6.326672 4.26082-6.326672C2.381468-6.326672 1.879352-4.849014 1.879352-4.26082C1.879352-3.170509 2.94097-2.94097 3.270933-2.869239Z'/>
<path id='g1-116' d='M2.883585-5.767171H4.203435C4.476013-5.767171 4.619475-5.767171 4.619475-6.025402C4.619475-6.18321 4.533398-6.18321 4.246474-6.18321H2.984009L3.514818-8.277755C3.572203-8.478602 3.572203-8.507294 3.572203-8.607717C3.572203-8.837257 3.385702-8.966372 3.199202-8.966372C3.084432-8.966372 2.75447-8.923334 2.6397-8.464255L2.080198-6.18321H.731656C.444732-6.18321 .315616-6.18321 .315616-5.910633C.315616-5.767171 .41604-5.767171 .688617-5.767171H1.965429L1.01858-1.979775C.90381-1.477658 .860772-1.334196 .860772-1.147696C.860772-.473424 1.334196 .143462 2.137583 .143462C3.586549 .143462 4.361243-1.951083 4.361243-2.051506C4.361243-2.137583 4.303859-2.180622 4.217782-2.180622C4.189089-2.180622 4.131704-2.180622 4.103012-2.123237C4.088666-2.108891 4.07432-2.094545 3.973896-1.865005C3.672626-1.147696 3.012701-.143462 2.180622-.143462C1.750236-.143462 1.721543-.502117 1.721543-.817733C1.721543-.832079 1.721543-1.104657 1.764582-1.276811L2.883585-5.767171Z'/>
<path id='g0-2' d='M8.037721-5.744181L3.905216-9.856023C3.657266-10.103973 3.615941-10.145298 3.450641-10.145298C3.244016-10.145298 3.037391-9.959335 3.037391-9.732047C3.037391-9.58741 3.078716-9.546085 3.306003-9.318797L7.438508-5.16563L3.306003-1.012464C3.078716-.785176 3.037391-.743851 3.037391-.599213C3.037391-.371925 3.244016-.185963 3.450641-.185963C3.615941-.185963 3.657266-.227288 3.905216-.475238L8.017058-4.58708L12.2942-.309938C12.335525-.289275 12.480163-.185963 12.604138-.185963C12.852088-.185963 13.017388-.371925 13.017388-.599213C13.017388-.640538 13.017388-.723188 12.955401-.826501C12.934738-.867826 9.649397-4.111842 8.616271-5.16563L12.397513-8.946872C12.500825-9.070847 12.810763-9.33946 12.914076-9.463435C12.934738-9.50476 13.017388-9.58741 13.017388-9.732047C13.017388-9.959335 12.852088-10.145298 12.604138-10.145298C12.438838-10.145298 12.356188-10.062648 12.1289-9.83536L8.037721-5.744181Z'/>
<path id='g4-40' d='M6.322731 5.041655C6.322731 5.020993 6.322731 4.979668 6.260744 4.91768C5.310268 3.946542 2.768778 1.301739 2.768778-5.144968S5.268943-14.215814 6.281406-15.248941C6.281406-15.269603 6.322731-15.310928 6.322731-15.372916S6.260744-15.476228 6.178094-15.476228C5.950806-15.476228 4.194492-13.947202 3.182028-11.674324C2.148902-9.380785 1.859627-7.149232 1.859627-5.16563C1.859627-3.677929 2.004265-1.157101 3.244016 1.508364C4.235817 3.657266 5.930144 5.16563 6.178094 5.16563C6.281406 5.16563 6.322731 5.124305 6.322731 5.041655Z'/>
<path id='g4-41' d='M5.434243-5.144968C5.434243-6.632669 5.289605-9.153497 4.049854-11.818962C3.058053-13.967864 1.363726-15.476228 1.115776-15.476228C1.053789-15.476228 .971138-15.455566 .971138-15.352253C.971138-15.310928 .991801-15.290266 1.012464-15.248941C2.004265-14.215814 4.525092-11.591674 4.525092-5.16563C4.525092 1.281076 2.024927 3.905216 1.012464 4.938343C.991801 4.979668 .971138 5.00033 .971138 5.041655C.971138 5.144968 1.053789 5.16563 1.115776 5.16563C1.343064 5.16563 3.099378 3.636604 4.111842 1.363726C5.144968-.929813 5.434243-3.161366 5.434243-5.144968Z'/>
<path id='g4-48' d='M8.678259-6.632669C8.678259-7.893083 8.657596-10.041985 7.78977-11.694987C7.025257-13.141363 5.806168-13.657926 4.731717-13.657926C3.739916-13.657926 2.479503-13.203351 1.694327-11.715649C.867826-10.16596 .785176-8.244346 .785176-6.632669C.785176-5.454906 .805838-3.657266 1.446376-2.086915C2.334865 .041325 3.925879 .3306 4.731717 .3306C5.682193 .3306 7.12857-.061988 7.975733-2.024927C8.595609-3.450641 8.678259-5.124305 8.678259-6.632669ZM4.731717 0C3.409316 0 2.62414-1.136439 2.334865-2.70679C2.107577-3.925879 2.107577-5.702856 2.107577-6.859957C2.107577-8.450971 2.107577-9.773372 2.37619-11.033786C2.768778-12.790101 3.925879-13.327326 4.731717-13.327326C5.578881-13.327326 6.673994-12.769438 7.066582-11.075111C7.335195-9.897348 7.355857-8.512959 7.355857-6.859957C7.355857-5.516893 7.355857-3.863891 7.107907-2.644803C6.673994-.392588 5.454906 0 4.731717 0Z'/>
<path id='g4-49' d='M5.496231-13.203351C5.496231-13.637264 5.475568-13.657926 5.186293-13.657926C4.380454-12.686788 3.161366-12.37685 2.004265-12.335525C1.942277-12.335525 1.838964-12.335525 1.818302-12.2942S1.797639-12.21155 1.797639-11.777637C2.438177-11.777637 3.512629-11.901612 4.339129-12.397513V-1.508364C4.339129-.785176 4.297804-.537226 2.520828-.537226H1.900952V0C2.892753-.020663 3.925879-.041325 4.91768-.041325S6.942607-.020663 7.934408 0V-.537226H7.314532C5.537556-.537226 5.496231-.764513 5.496231-1.508364V-13.203351Z'/>
<path id='g4-50' d='M8.616271-3.202691H8.244346C8.037721-1.735652 7.872421-1.487702 7.78977-1.363726C7.686458-1.198426 6.198756-1.198426 5.909481-1.198426H1.942277C2.686128-2.004265 4.132504-3.471304 5.888818-5.16563C7.149232-6.364056 8.616271-7.769108 8.616271-9.814697C8.616271-12.252875 6.673994-13.657926 4.50443-13.657926C2.231552-13.657926 .847163-11.653662 .847163-9.794035C.847163-8.988197 1.446376-8.884884 1.694327-8.884884C1.900952-8.884884 2.520828-9.008859 2.520828-9.732047C2.520828-10.372586 1.983602-10.558548 1.694327-10.558548C1.570352-10.558548 1.446376-10.537886 1.363726-10.496561C1.756314-12.252875 2.954741-13.120701 4.215154-13.120701C6.012794-13.120701 7.190557-11.694987 7.190557-9.814697C7.190557-8.017058 6.136769-6.467369 4.959005-5.124305L.847163-.475238V0H8.120371L8.616271-3.202691Z'/>
<path id='g4-53' d='M2.355527-12.087575C2.562153-12.004925 3.409316-11.736312 4.277142-11.736312C6.198756-11.736312 7.252545-12.769438 7.851758-13.368651C7.851758-13.533951 7.851758-13.637264 7.727783-13.637264C7.70712-13.637264 7.665795-13.637264 7.500495-13.554614C6.777307-13.244676 5.930144-12.996726 4.897017-12.996726C4.277142-12.996726 3.347328-13.079376 2.334865-13.533951C2.107577-13.637264 2.066252-13.637264 2.04559-13.637264C1.942277-13.637264 1.921614-13.616601 1.921614-13.203351V-7.21122C1.921614-6.839294 1.921614-6.735982 2.12824-6.735982C2.231552-6.735982 2.272877-6.777307 2.37619-6.921945C3.037391-7.851758 3.946542-8.244346 4.979668-8.244346C5.702856-8.244346 7.252545-7.78977 7.252545-4.256479C7.252545-3.595279 7.252545-2.396852 6.632669-1.446376C6.116106-.599213 5.310268-.1653 4.42178-.1653C3.058053-.1653 1.673664-1.115776 1.301739-2.70679C1.384389-2.686128 1.549689-2.644803 1.632339-2.644803C1.900952-2.644803 2.417515-2.78944 2.417515-3.429978C2.417515-3.987867 2.024927-4.215154 1.632339-4.215154C1.157101-4.215154 .847163-3.925879 .847163-3.347328C.847163-1.549689 2.272877 .3306 4.463105 .3306C6.591344 .3306 8.616271-1.508364 8.616271-4.173829C8.616271-6.653332 7.004595-8.574946 5.00033-8.574946C3.946542-8.574946 3.058053-8.182358 2.355527-7.438508V-12.087575Z'/>
<path id='g4-56' d='M5.620206-7.438508C6.921945-8.099708 8.244346-9.091509 8.244346-10.682523C8.244346-12.562813 6.426044-13.657926 4.75238-13.657926C2.87209-13.657926 1.219089-12.2942 1.219089-10.413911C1.219089-9.897348 1.343064-9.008859 2.148902-8.223683C2.355527-8.017058 3.223353-7.397183 3.781241-7.004595C2.851428-6.529357 .681863-5.392918 .681863-3.120041C.681863-.991801 2.70679 .3306 4.711055 .3306C6.921945 .3306 8.781571-1.260414 8.781571-3.367991C8.781571-5.24828 7.521158-6.116106 6.694657-6.673994L5.620206-7.438508ZM2.913415-9.256809C2.748115-9.360122 1.921614-10.00066 1.921614-10.971799C1.921614-12.232212 3.223353-13.182688 4.711055-13.182688C6.343394-13.182688 7.54182-12.025587 7.54182-10.682523C7.54182-8.760909 5.392918-7.665795 5.289605-7.665795C5.268943-7.665795 5.24828-7.665795 5.08298-7.78977L2.913415-9.256809ZM6.715319-5.020993C7.025257-4.793705 8.017058-4.111842 8.017058-2.851428C8.017058-1.322401 6.488032-.1653 4.75238-.1653C2.87209-.1653 1.446376-1.508364 1.446376-3.140703S2.70679-6.136769 4.132504-6.777307L6.715319-5.020993Z'/>
<path id='g4-61' d='M13.286001-6.632669C13.595939-6.632669 13.905877-6.632669 13.905877-6.983932C13.905877-7.355857 13.554614-7.355857 13.203351-7.355857H1.653002C1.301739-7.355857 .950476-7.355857 .950476-6.983932C.950476-6.632669 1.260414-6.632669 1.570352-6.632669H13.286001ZM13.203351-2.954741C13.554614-2.954741 13.905877-2.954741 13.905877-3.326666C13.905877-3.677929 13.595939-3.677929 13.286001-3.677929H1.570352C1.260414-3.677929 .950476-3.677929 .950476-3.326666C.950476-2.954741 1.301739-2.954741 1.653002-2.954741H13.203351Z'/>
<use id='g2-25' xlink:href='#g1-25' transform='scale(1.440279)'/>
<use id='g2-58' xlink:href='#g1-58' transform='scale(1.440279)'/>
<use id='g2-97' xlink:href='#g1-97' transform='scale(1.440279)'/>
<use id='g2-98' xlink:href='#g1-98' transform='scale(1.440279)'/>
<use id='g2-105' xlink:href='#g1-105' transform='scale(1.440279)'/>
<use id='g2-110' xlink:href='#g1-110' transform='scale(1.440279)'/>
<use id='g2-115' xlink:href='#g1-115' transform='scale(1.440279)'/>
<use id='g2-116' xlink:href='#g1-116' transform='scale(1.440279)'/>
</defs>
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -60.6359)'>
<use x='56.413267' y='81.0959' xlink:href='#g2-98'/>
<use x='70.754951' y='81.0959' xlink:href='#g4-61'/>
<use x='91.368187' y='81.0959' xlink:href='#g2-115'/>
<use x='100.89823' y='81.0959' xlink:href='#g2-105'/>
<use x='107.800214' y='81.0959' xlink:href='#g2-110'/>
<use x='119.877129' y='81.0959' xlink:href='#g4-40'/>
<use x='128.389876' y='67.117541' xlink:href='#g2-97'/>
<rect x='128.389876' y='75.517028' height='.826475' width='10.620512'/>
<use x='128.962041' y='95.269357' xlink:href='#g4-50'/>
<use x='144.797571' y='81.0959' xlink:href='#g0-2'/>
<use x='174.760945' y='67.117541' xlink:href='#g2-25'/>
<rect x='166.655659' y='75.517028' height='.826475' width='28.428595'/>
<use x='166.655659' y='95.269357' xlink:href='#g4-49'/>
<use x='176.131866' y='95.269357' xlink:href='#g4-56'/>
<use x='185.608074' y='95.269357' xlink:href='#g4-48'/>
<use x='196.279768' y='81.0959' xlink:href='#g4-41'/>
<use x='208.18867' y='81.0959' xlink:href='#g0-2'/>
<use x='228.851244' y='81.0959' xlink:href='#g4-40'/>
<use x='276.637189' y='67.117541' xlink:href='#g4-48'/>
<use x='286.113396' y='67.117541' xlink:href='#g2-58'/>
<use x='291.733352' y='67.117541' xlink:href='#g4-53'/>
<rect x='237.363992' y='75.517028' height='.826475' width='103.118737'/>
<use x='237.363992' y='95.269357' xlink:href='#g2-116'/>
<use x='244.669935' y='95.269357' xlink:href='#g2-97'/>
<use x='255.290449' y='95.269357' xlink:href='#g2-110'/>
<use x='267.367365' y='95.269357' xlink:href='#g4-40'/>
<use x='275.880112' y='87.133865' xlink:href='#g1-97'/>
<rect x='275.880112' y='89.690486' height='.826475' width='7.373929'/>
<use x='276.055298' y='102.394615' xlink:href='#g3-50'/>
<use x='289.041223' y='95.269357' xlink:href='#g0-2'/>
<use x='317.193122' y='87.133865' xlink:href='#g1-25'/>
<rect x='310.899311' y='89.690486' height='.826475' width='21.070719'/>
<use x='310.899311' y='102.394615' xlink:href='#g3-49'/>
<use x='317.922896' y='102.394615' xlink:href='#g3-56'/>
<use x='324.946482' y='102.394615' xlink:href='#g3-48'/>
<use x='333.165544' y='95.269357' xlink:href='#g4-41'/>
<use x='341.678242' y='81.0959' xlink:href='#g4-41'/>
<use x='353.587144' y='81.0959' xlink:href='#g0-2'/>
<use x='374.249719' y='81.0959' xlink:href='#g4-50'/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

1
showcase/polyC.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

69
showcase/polyCOrig.svg Normal file
View File

@ -0,0 +1,69 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Generated by CodeCogs with dvisvgm 2.11.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='352.496992pt' height='58.273899pt' viewBox='-.239051 -.228009 352.496992 58.273899'>
<defs>
<path id='g0-0' d='M13.616601-4.75238C13.967864-4.75238 14.33979-4.75238 14.33979-5.16563S13.967864-5.578881 13.616601-5.578881H2.438177C2.086915-5.578881 1.714989-5.578881 1.714989-5.16563S2.086915-4.75238 2.438177-4.75238H13.616601Z'/>
<path id='g0-2' d='M8.037721-5.744181L3.905216-9.856023C3.657266-10.103973 3.615941-10.145298 3.450641-10.145298C3.244016-10.145298 3.037391-9.959335 3.037391-9.732047C3.037391-9.58741 3.078716-9.546085 3.306003-9.318797L7.438508-5.16563L3.306003-1.012464C3.078716-.785176 3.037391-.743851 3.037391-.599213C3.037391-.371925 3.244016-.185963 3.450641-.185963C3.615941-.185963 3.657266-.227288 3.905216-.475238L8.017058-4.58708L12.2942-.309938C12.335525-.289275 12.480163-.185963 12.604138-.185963C12.852088-.185963 13.017388-.371925 13.017388-.599213C13.017388-.640538 13.017388-.723188 12.955401-.826501C12.934738-.867826 9.649397-4.111842 8.616271-5.16563L12.397513-8.946872C12.500825-9.070847 12.810763-9.33946 12.914076-9.463435C12.934738-9.50476 13.017388-9.58741 13.017388-9.732047C13.017388-9.959335 12.852088-10.145298 12.604138-10.145298C12.438838-10.145298 12.356188-10.062648 12.1289-9.83536L8.037721-5.744181Z'/>
<path id='g0-106' d='M3.285341-14.75304C3.285341-15.124965 3.285341-15.496891 2.87209-15.496891S2.45884-15.124965 2.45884-14.75304V4.42178C2.45884 4.793705 2.45884 5.16563 2.87209 5.16563S3.285341 4.793705 3.285341 4.42178V-14.75304Z'/>
<path id='g3-48' d='M6.427096-4.590783C6.427096-5.781517 6.355365-6.943559 5.838902-8.03387C5.250708-9.224604 4.217782-9.54022 3.514818-9.54022C2.682739-9.54022 1.664159-9.12418 1.133349-7.933446C.731656-7.029636 .588194-6.140172 .588194-4.590783C.588194-3.199202 .688617-2.151929 1.20508-1.133349C1.764582-.043039 2.75447 .30127 3.500472 .30127C4.748591 .30127 5.465901-.444732 5.88194-1.276811C6.398403-2.352776 6.427096-3.758703 6.427096-4.590783ZM3.500472 .014346C3.041393 .014346 2.108891-.243885 1.836313-1.807621C1.678505-2.668392 1.678505-3.758703 1.678505-4.762937C1.678505-5.939325 1.678505-7.000943 1.908044-7.847369C2.151929-8.808564 2.883585-9.253296 3.500472-9.253296C4.045627-9.253296 4.877707-8.923334 5.150284-7.689561C5.336785-6.871828 5.336785-5.738478 5.336785-4.762937C5.336785-3.801742 5.336785-2.711431 5.178977-1.836313C4.906399-.258232 4.002589 .014346 3.500472 .014346Z'/>
<path id='g3-49' d='M4.131704-9.195911C4.131704-9.525874 4.131704-9.54022 3.84478-9.54022C3.500472-9.152873 2.783162-8.622064 1.305504-8.622064V-8.206024C1.635466-8.206024 2.352776-8.206024 3.141817-8.579025V-1.104657C3.141817-.588194 3.098778-.41604 1.836313-.41604H1.391581V0C1.778928-.028692 3.170509-.028692 3.643934-.028692S5.494593-.028692 5.88194 0V-.41604H5.437208C4.174743-.41604 4.131704-.588194 4.131704-1.104657V-9.195911Z'/>
<path id='g3-50' d='M6.312326-2.410161H5.99671C5.953671-2.166276 5.838902-1.377235 5.69544-1.147696C5.595016-1.01858 4.777283-1.01858 4.346897-1.01858H1.692851C2.080198-1.348542 2.955316-2.266699 3.328317-2.611008C5.508939-4.619475 6.312326-5.365477 6.312326-6.785751C6.312326-8.435563 5.006822-9.54022 3.342664-9.54022S.702964-8.119947 .702964-6.886174C.702964-6.154518 1.334196-6.154518 1.377235-6.154518C1.678505-6.154518 2.051506-6.369711 2.051506-6.828789C2.051506-7.230483 1.778928-7.50306 1.377235-7.50306C1.248119-7.50306 1.219427-7.50306 1.176388-7.488714C1.448966-8.464255 2.22366-9.12418 3.156163-9.12418C4.37559-9.12418 5.121592-8.105601 5.121592-6.785751C5.121592-5.566324 4.418628-4.504705 3.600895-3.586549L.702964-.344309V0H5.939325L6.312326-2.410161Z'/>
<path id='g3-56' d='M4.275166-5.178977C4.992476-5.566324 6.039748-6.226249 6.039748-7.431329C6.039748-8.679448 4.834668-9.54022 3.514818-9.54022C2.094545-9.54022 .975541-8.492948 .975541-7.187444C.975541-6.699673 1.119003-6.211903 1.520697-5.724132C1.678505-5.537632 1.692851-5.523285 2.697085-4.820322C1.305504-4.174743 .588194-3.213548 .588194-2.166276C.588194-.645579 2.03716 .30127 3.500472 .30127C5.092899 .30127 6.427096-.875118 6.427096-2.381468C6.427096-3.84478 5.39417-4.490359 4.275166-5.178977ZM2.324084-6.470134C2.137583-6.59925 1.563735-6.972251 1.563735-7.675215C1.563735-8.607717 2.539277-9.195911 3.500472-9.195911C4.533398-9.195911 5.451554-8.449909 5.451554-7.416983C5.451554-6.541865 4.820322-5.838902 3.988242-5.379823L2.324084-6.470134ZM2.998355-4.619475L4.734245-3.486126C5.107246-3.24224 5.767171-2.797508 5.767171-1.92239C5.767171-.832079 4.662514-.086077 3.514818-.086077C2.295391-.086077 1.248119-.975541 1.248119-2.166276C1.248119-3.285279 2.065852-4.189089 2.998355-4.619475Z'/>
<path id='g1-18' d='M6.355365-7.216136C6.355365-8.679448 5.896286-10.099722 4.719898-10.099722C2.711431-10.099722 .573848-5.896286 .573848-2.740123C.573848-2.080198 .71731 .143462 2.22366 .143462C4.174743 .143462 6.355365-3.95955 6.355365-7.216136ZM2.008467-5.193323C2.22366-6.039748 2.52493-7.244829 3.098778-8.263409C3.572203-9.12418 4.07432-9.812798 4.705552-9.812798C5.178977-9.812798 5.494593-9.411104 5.494593-8.03387C5.494593-7.517407 5.451554-6.800097 5.035515-5.193323H2.008467ZM4.935091-4.762937C4.576436-3.35701 4.275166-2.453199 3.758703-1.549389C3.342664-.817733 2.840547-.143462 2.238007-.143462C1.793274-.143462 1.43462-.487771 1.43462-1.908044C1.43462-2.840547 1.664159-3.816088 1.893698-4.762937H4.935091Z'/>
<path id='g1-25' d='M3.715665-5.408516H5.336785C4.949438-3.801742 4.705552-2.75447 4.705552-1.606774C4.705552-1.405927 4.705552 .143462 5.293746 .143462C5.595016 .143462 5.853248-.129116 5.853248-.373001C5.853248-.444732 5.853248-.473424 5.752824-.688617C5.365477-1.678505 5.365477-2.912278 5.365477-3.012701C5.365477-3.098778 5.365477-4.117358 5.666747-5.408516H7.273521C7.460022-5.408516 7.933446-5.408516 7.933446-5.867594C7.933446-6.18321 7.660868-6.18321 7.402637-6.18321H2.682739C2.352776-6.18321 1.865005-6.18321 1.20508-5.480247C.832079-5.064207 .373001-4.303859 .373001-4.217782S.444732-4.103012 .530809-4.103012C.631233-4.103012 .645579-4.146051 .71731-4.232128C1.463312-5.408516 2.209314-5.408516 2.567969-5.408516H3.385702C3.070086-4.332551 2.711431-3.084432 1.535043-.573848C1.420273-.344309 1.420273-.315616 1.420273-.229539C1.420273 .071731 1.678505 .143462 1.807621 .143462C2.22366 .143462 2.33843-.229539 2.510584-.832079C2.740123-1.563735 2.740123-1.592428 2.883585-2.166276L3.715665-5.408516Z'/>
<path id='g1-97' d='M4.318205-1.707197C4.246474-1.463312 4.246474-1.43462 4.045627-1.162042C3.730011-.760348 3.098778-.143462 2.424507-.143462C1.836313-.143462 1.506351-.674271 1.506351-1.520697C1.506351-2.309738 1.951083-3.916511 2.22366-4.519052C2.711431-5.523285 3.385702-6.039748 3.945204-6.039748C4.892053-6.039748 5.078553-4.86336 5.078553-4.748591C5.078553-4.734245 5.035515-4.547744 5.021168-4.519052L4.318205-1.707197ZM5.236361-5.379823C5.078553-5.752824 4.691206-6.326672 3.945204-6.326672C2.324084-6.326672 .573848-4.232128 .573848-2.108891C.573848-.688617 1.405927 .143462 2.381468 .143462C3.170509 .143462 3.84478-.473424 4.246474-.946849C4.389936-.100423 5.064207 .143462 5.494593 .143462S6.269288-.11477 6.527519-.631233C6.757058-1.119003 6.957905-1.994121 6.957905-2.051506C6.957905-2.123237 6.90052-2.180622 6.814443-2.180622C6.685327-2.180622 6.670981-2.108891 6.613596-1.893698C6.398403-1.047272 6.125826-.143462 5.537632-.143462C5.121592-.143462 5.092899-.516463 5.092899-.803387C5.092899-1.133349 5.135938-1.291158 5.265054-1.850659C5.365477-2.209314 5.437208-2.52493 5.551978-2.94097C6.082787-5.092899 6.211903-5.609363 6.211903-5.69544C6.211903-5.896286 6.054095-6.054095 5.838902-6.054095C5.379823-6.054095 5.265054-5.551978 5.236361-5.379823Z'/>
<path id='g1-98' d='M3.313971-9.597605C3.328317-9.65499 3.35701-9.741067 3.35701-9.812798C3.35701-9.95626 3.213548-9.95626 3.184855-9.95626C3.170509-9.95626 2.654046-9.913221 2.395815-9.884529C2.151929-9.870183 1.936736-9.84149 1.678505-9.827144C1.334196-9.798452 1.233773-9.784105 1.233773-9.525874C1.233773-9.382412 1.377235-9.382412 1.520697-9.382412C2.252353-9.382412 2.252353-9.253296 2.252353-9.109834C2.252353-9.009411 2.137583-8.593371 2.080198-8.33514L1.73589-6.957905C1.592428-6.384057 .774695-3.127471 .71731-2.869239C.645579-2.510584 .645579-2.266699 .645579-2.080198C.645579-.616886 1.463312 .143462 2.395815 .143462C4.059973 .143462 5.781517-1.994121 5.781517-4.07432C5.781517-5.39417 5.035515-6.326672 3.95955-6.326672C3.213548-6.326672 2.539277-5.709786 2.266699-5.422862L3.313971-9.597605ZM2.410161-.143462C1.951083-.143462 1.448966-.487771 1.448966-1.606774C1.448966-2.080198 1.492004-2.352776 1.750236-3.35701C1.793274-3.54351 2.022814-4.461667 2.080198-4.648167C2.108891-4.762937 2.955316-6.039748 3.930858-6.039748C4.56209-6.039748 4.849014-5.408516 4.849014-4.662514C4.849014-3.973896 4.447321-2.352776 4.088666-1.606774C3.730011-.832079 3.070086-.143462 2.410161-.143462Z'/>
<path id='g1-99' d='M5.609363-5.39417C5.336785-5.39417 5.207669-5.39417 5.006822-5.222015C4.920745-5.150284 4.762937-4.935091 4.762937-4.705552C4.762937-4.418628 4.97813-4.246474 5.250708-4.246474C5.595016-4.246474 5.982364-4.533398 5.982364-5.107246C5.982364-5.795863 5.322439-6.326672 4.332551-6.326672C2.453199-6.326672 .573848-4.275166 .573848-2.238007C.573848-.989888 1.348542 .143462 2.811854 .143462C4.762937 .143462 5.99671-1.377235 5.99671-1.563735C5.99671-1.649813 5.910633-1.721543 5.853248-1.721543C5.810209-1.721543 5.795863-1.707197 5.666747-1.578082C4.748591-.358655 3.385702-.143462 2.840547-.143462C1.850659-.143462 1.535043-1.004234 1.535043-1.721543C1.535043-2.22366 1.778928-3.615241 2.295391-4.590783C2.668392-5.265054 3.443087-6.039748 4.346897-6.039748C4.533398-6.039748 5.322439-6.011056 5.609363-5.39417Z'/>
<path id='g1-105' d='M4.059973-2.051506C4.059973-2.123237 4.002589-2.180622 3.916511-2.180622C3.787396-2.180622 3.773049-2.137583 3.701318-1.893698C3.328317-.588194 2.740123-.143462 2.266699-.143462C2.094545-.143462 1.893698-.186501 1.893698-.616886C1.893698-1.004234 2.065852-1.43462 2.22366-1.865005L3.227894-4.533398C3.270933-4.648167 3.371356-4.906399 3.371356-5.178977C3.371356-5.781517 2.94097-6.326672 2.238007-6.326672C.918157-6.326672 .387347-4.246474 .387347-4.131704C.387347-4.07432 .444732-4.002589 .545155-4.002589C.674271-4.002589 .688617-4.059973 .746002-4.26082C1.090311-5.465901 1.635466-6.039748 2.194968-6.039748C2.324084-6.039748 2.567969-6.025402 2.567969-5.566324C2.567969-5.193323 2.381468-4.719898 2.266699-4.404282L1.262465-1.73589C1.176388-1.506351 1.090311-1.276811 1.090311-1.01858C1.090311-.373001 1.535043 .143462 2.22366 .143462C3.54351 .143462 4.059973-1.951083 4.059973-2.051506ZM3.945204-8.952026C3.945204-9.167219 3.773049-9.425451 3.457433-9.425451C3.127471-9.425451 2.75447-9.109834 2.75447-8.736833C2.75447-8.378178 3.05574-8.263409 3.227894-8.263409C3.615241-8.263409 3.945204-8.63641 3.945204-8.952026Z'/>
<path id='g1-110' d='M2.955316-4.203435C2.984009-4.289513 3.342664-5.006822 3.873473-5.465901C4.246474-5.810209 4.734245-6.039748 5.293746-6.039748C5.867594-6.039748 6.068441-5.609363 6.068441-5.035515C6.068441-4.217782 5.480247-2.582315 5.193323-1.807621C5.064207-1.463312 4.992476-1.276811 4.992476-1.01858C4.992476-.373001 5.437208 .143462 6.125826 .143462C7.460022 .143462 7.962139-1.965429 7.962139-2.051506C7.962139-2.123237 7.904754-2.180622 7.818677-2.180622C7.689561-2.180622 7.675215-2.137583 7.603484-1.893698C7.273521-.71731 6.728366-.143462 6.168864-.143462C6.025402-.143462 5.795863-.157808 5.795863-.616886C5.795863-.975541 5.953671-1.405927 6.039748-1.606774C6.326672-2.395815 6.929213-4.002589 6.929213-4.820322C6.929213-5.681093 6.427096-6.326672 5.336785-6.326672C4.059973-6.326672 3.385702-5.422862 3.127471-5.064207C3.084432-5.88194 2.496238-6.326672 1.865005-6.326672C1.405927-6.326672 1.090311-6.054095 .846426-5.566324C.588194-5.049861 .387347-4.189089 .387347-4.131704S.444732-4.002589 .545155-4.002589C.659925-4.002589 .674271-4.016935 .760348-4.346897C.989888-5.222015 1.248119-6.039748 1.821967-6.039748C2.151929-6.039748 2.266699-5.810209 2.266699-5.379823C2.266699-5.064207 2.123237-4.504705 2.022814-4.059973L1.62112-2.510584C1.563735-2.238007 1.405927-1.592428 1.334196-1.334196C1.233773-.961195 1.075965-.286924 1.075965-.215193C1.075965-.014346 1.233773 .143462 1.448966 .143462C1.62112 .143462 1.821967 .057385 1.936736-.157808C1.965429-.229539 2.094545-.731656 2.166276-1.01858L2.481892-2.309738L2.955316-4.203435Z'/>
<path id='g1-115' d='M3.270933-2.869239C3.514818-2.826201 3.902165-2.740123 3.988242-2.725777C4.174743-2.668392 4.820322-2.438853 4.820322-1.750236C4.820322-1.305504 4.418628-.143462 2.75447-.143462C2.453199-.143462 1.377235-.186501 1.090311-.975541C1.664159-.90381 1.951083-1.348542 1.951083-1.664159C1.951083-1.965429 1.750236-2.123237 1.463312-2.123237C1.147696-2.123237 .731656-1.879352 .731656-1.233773C.731656-.387347 1.592428 .143462 2.740123 .143462C4.920745 .143462 5.566324-1.463312 5.566324-2.209314C5.566324-2.424507 5.566324-2.826201 5.107246-3.285279C4.748591-3.629588 4.404282-3.701318 3.629588-3.859127C3.24224-3.945204 2.625354-4.07432 2.625354-4.719898C2.625354-5.006822 2.883585-6.039748 4.246474-6.039748C4.849014-6.039748 5.437208-5.810209 5.58067-5.293746C4.949438-5.293746 4.920745-4.748591 4.920745-4.734245C4.920745-4.432974 5.193323-4.346897 5.322439-4.346897C5.523285-4.346897 5.924979-4.504705 5.924979-5.107246S5.379823-6.326672 4.26082-6.326672C2.381468-6.326672 1.879352-4.849014 1.879352-4.26082C1.879352-3.170509 2.94097-2.94097 3.270933-2.869239Z'/>
<path id='g4-40' d='M6.322731 5.041655C6.322731 5.020993 6.322731 4.979668 6.260744 4.91768C5.310268 3.946542 2.768778 1.301739 2.768778-5.144968S5.268943-14.215814 6.281406-15.248941C6.281406-15.269603 6.322731-15.310928 6.322731-15.372916S6.260744-15.476228 6.178094-15.476228C5.950806-15.476228 4.194492-13.947202 3.182028-11.674324C2.148902-9.380785 1.859627-7.149232 1.859627-5.16563C1.859627-3.677929 2.004265-1.157101 3.244016 1.508364C4.235817 3.657266 5.930144 5.16563 6.178094 5.16563C6.281406 5.16563 6.322731 5.124305 6.322731 5.041655Z'/>
<path id='g4-41' d='M5.434243-5.144968C5.434243-6.632669 5.289605-9.153497 4.049854-11.818962C3.058053-13.967864 1.363726-15.476228 1.115776-15.476228C1.053789-15.476228 .971138-15.455566 .971138-15.352253C.971138-15.310928 .991801-15.290266 1.012464-15.248941C2.004265-14.215814 4.525092-11.591674 4.525092-5.16563C4.525092 1.281076 2.024927 3.905216 1.012464 4.938343C.991801 4.979668 .971138 5.00033 .971138 5.041655C.971138 5.144968 1.053789 5.16563 1.115776 5.16563C1.343064 5.16563 3.099378 3.636604 4.111842 1.363726C5.144968-.929813 5.434243-3.161366 5.434243-5.144968Z'/>
<path id='g4-43' d='M7.78977-4.793705H13.265339C13.554614-4.793705 13.905877-4.793705 13.905877-5.144968C13.905877-5.516893 13.575276-5.516893 13.265339-5.516893H7.78977V-10.992461C7.78977-11.281736 7.78977-11.632999 7.438508-11.632999C7.066582-11.632999 7.066582-11.302399 7.066582-10.992461V-5.516893H1.591014C1.301739-5.516893 .950476-5.516893 .950476-5.16563C.950476-4.793705 1.281076-4.793705 1.591014-4.793705H7.066582V.681863C7.066582 .971138 7.066582 1.322401 7.417845 1.322401C7.78977 1.322401 7.78977 .991801 7.78977 .681863V-4.793705Z'/>
<path id='g4-48' d='M8.678259-6.632669C8.678259-7.893083 8.657596-10.041985 7.78977-11.694987C7.025257-13.141363 5.806168-13.657926 4.731717-13.657926C3.739916-13.657926 2.479503-13.203351 1.694327-11.715649C.867826-10.16596 .785176-8.244346 .785176-6.632669C.785176-5.454906 .805838-3.657266 1.446376-2.086915C2.334865 .041325 3.925879 .3306 4.731717 .3306C5.682193 .3306 7.12857-.061988 7.975733-2.024927C8.595609-3.450641 8.678259-5.124305 8.678259-6.632669ZM4.731717 0C3.409316 0 2.62414-1.136439 2.334865-2.70679C2.107577-3.925879 2.107577-5.702856 2.107577-6.859957C2.107577-8.450971 2.107577-9.773372 2.37619-11.033786C2.768778-12.790101 3.925879-13.327326 4.731717-13.327326C5.578881-13.327326 6.673994-12.769438 7.066582-11.075111C7.335195-9.897348 7.355857-8.512959 7.355857-6.859957C7.355857-5.516893 7.355857-3.863891 7.107907-2.644803C6.673994-.392588 5.454906 0 4.731717 0Z'/>
<path id='g4-57' d='M7.273207-6.116106C7.273207-1.570352 5.392918-.1653 3.843229-.1653C3.367991-.1653 2.21089-.227288 1.735652-1.033126C2.272877-.950476 2.665465-1.239751 2.665465-1.756314C2.665465-2.314202 2.21089-2.500165 1.921614-2.500165C1.735652-2.500165 1.177764-2.417515 1.177764-1.714989C1.177764-.309938 2.396852 .3306 3.884554 .3306C6.260744 .3306 8.678259-2.272877 8.678259-6.818632C8.678259-12.480163 6.364056-13.657926 4.793705-13.657926C2.748115-13.657926 .785176-11.860287 .785176-9.091509C.785176-6.529357 2.45884-4.628405 4.566417-4.628405C6.302069-4.628405 7.066582-6.240081 7.273207-6.921945V-6.116106ZM4.607742-4.959005C4.049854-4.959005 3.264678-5.062318 2.62414-6.302069C2.190227-7.107907 2.190227-8.058383 2.190227-9.070847C2.190227-10.289935 2.190227-11.137099 2.768778-12.04625C3.058053-12.480163 3.595279-13.182688 4.793705-13.182688C7.231882-13.182688 7.231882-9.442772 7.231882-8.616271C7.231882-7.149232 6.570682-4.959005 4.607742-4.959005Z'/>
<path id='g4-61' d='M13.286001-6.632669C13.595939-6.632669 13.905877-6.632669 13.905877-6.983932C13.905877-7.355857 13.554614-7.355857 13.203351-7.355857H1.653002C1.301739-7.355857 .950476-7.355857 .950476-6.983932C.950476-6.632669 1.260414-6.632669 1.570352-6.632669H13.286001ZM13.203351-2.954741C13.554614-2.954741 13.905877-2.954741 13.905877-3.326666C13.905877-3.677929 13.595939-3.677929 13.286001-3.677929H1.570352C1.260414-3.677929 .950476-3.677929 .950476-3.326666C.950476-2.954741 1.301739-2.954741 1.653002-2.954741H13.203351Z'/>
<use id='g2-18' xlink:href='#g1-18' transform='scale(1.440279)'/>
<use id='g2-97' xlink:href='#g1-97' transform='scale(1.440279)'/>
<use id='g2-98' xlink:href='#g1-98' transform='scale(1.440279)'/>
<use id='g2-99' xlink:href='#g1-99' transform='scale(1.440279)'/>
<use id='g2-105' xlink:href='#g1-105' transform='scale(1.440279)'/>
<use id='g2-110' xlink:href='#g1-110' transform='scale(1.440279)'/>
<use id='g2-115' xlink:href='#g1-115' transform='scale(1.440279)'/>
</defs>
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -61.030387)'>
<use x='56.413267' y='82.125562' xlink:href='#g2-99'/>
<use x='70.860178' y='82.125562' xlink:href='#g4-61'/>
<use x='226.212177' y='68.147204' xlink:href='#g2-98'/>
<rect x='92.668928' y='76.54669' height='.826475' width='275.68858'/>
<use x='92.668928' y='97.950709' xlink:href='#g2-115'/>
<use x='102.19897' y='97.950709' xlink:href='#g2-105'/>
<use x='109.100954' y='97.950709' xlink:href='#g2-110'/>
<use x='121.177869' y='97.950709' xlink:href='#g4-40'/>
<use x='135.984428' y='89.815216' xlink:href='#g1-25'/>
<rect x='129.690617' y='92.371837' height='.826475' width='21.070719'/>
<use x='129.690617' y='105.075966' xlink:href='#g3-49'/>
<use x='136.714202' y='105.075966' xlink:href='#g3-56'/>
<use x='143.737787' y='105.075966' xlink:href='#g3-48'/>
<use x='156.548518' y='97.950709' xlink:href='#g0-2'/>
<use x='177.211092' y='97.950709' xlink:href='#g4-40'/>
<use x='184.528326' y='97.950709' xlink:href='#g4-57'/>
<use x='194.004534' y='97.950709' xlink:href='#g4-48'/>
<use x='208.072409' y='97.950709' xlink:href='#g4-43'/>
<use x='228.733242' y='89.815216' xlink:href='#g1-97'/>
<rect x='228.733242' y='92.371837' height='.826475' width='7.373929'/>
<use x='228.908427' y='105.075966' xlink:href='#g3-50'/>
<use x='241.894352' y='97.950709' xlink:href='#g0-0'/>
<use x='262.556927' y='97.950709' xlink:href='#g2-18'/>
<use x='277.138952' y='97.950709' xlink:href='#g4-43'/>
<use x='296.604271' y='97.950709' xlink:href='#g2-97'/>
<use x='311.816454' y='97.950709' xlink:href='#g0-2'/>
<use x='332.479029' y='97.950709' xlink:href='#g0-106'/>
<use x='339.632918' y='89.815216' xlink:href='#g1-18'/>
<rect x='339.414149' y='92.371837' height='.826475' width='7.373929'/>
<use x='339.414149' y='105.075966' xlink:href='#g1-97'/>
<use x='347.983592' y='97.950709' xlink:href='#g0-106'/>
<use x='353.723198' y='97.950709' xlink:href='#g4-41'/>
<use x='361.040432' y='97.950709' xlink:href='#g4-41'/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

425
showcase/template.html Normal file
View File

@ -0,0 +1,425 @@
<!DOCTYPE html>
<html>
<!-- ahhh -->
<body style="margin: 0; overflow: hidden">
<div style="display: none;">
<img id="polyA" src="polyA.svg" width="100" height="100"></img>
<img id="polyB" src="polyB.svg" width="100" height="100"></img>
<img id="polyC" src="polyC.svg" width="100" height="100"></img>
</div>
<canvas
id="myCanvas"
width="10"
height="10"
style="display: block; box-sizing: border-box"
>
Your browser does not support the HTML5 canvas tag.</canvas
>
<script>
const polyA = document.getElementById('polyA');
const polyB = document.getElementById('polyB');
const polyC = document.getElementById('polyC');
let c = document.getElementById("myCanvas");
let ctx = c.getContext("2d");
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
let deg_per_sec = 30;
let time = 120;
let fps = 60;
centerX = ctx.canvas.width / 2;
centerY = ctx.canvas.height / 2;
rotation = 0; //was = j = angle
currentFrame = 0; //was = i
let nPoly1 = {
colour1: [0, 255, 0],
colour2: [255, 0, 0],
speedMult: 0.20,
depth: 22,
width: 0,
widthMax: 400,
sides: 4,
rotation: 0,
duration: 90*0.2, //rotation
draw: function () {
DrawPolyTwistColour_width(
this.sides,
this.depth,
this.width,
-90,
this.rotation * this.speedMult,
this.colour1,
this.colour2
);
},
};
let nPoly2 = {
colour1: [0,0,0],
colour2: [110, 38, 255],
speedMult: 0.05,
depth: 100,
width: 0,
widthMax: 400,
sides: 8,
rotation: 0,
duration: 120 *0.05,
draw: function () {
DrawPolyTwistColour_width(
this.sides,
this.depth,
this.width,
-90,
this.rotation * this.speedMult,
this.colour1,
this.colour2
);
},
};
let floralInv1 = {
colour1: [255, 0, 0],
speedMult: 1,
width: 0,
widthMax: 250,
sides: 5,
rotation: 0,
duration: deg_per_sec*10,
draw: function () {
Draw_Spiral_Pattern(this.sides, this.width, this.rotation*this.speedMult, centerX, centerY, 'red');
},
};
let floralInv2 = {
colour1: [255, 0, 0],
speedMult: 1,
width: 0,
widthMax: 250,
sides: 12,
rotation: 0,
duration: deg_per_sec*10,
draw: function () {
Draw_Spiral_Pattern(this.sides, this.width, this.rotation*this.speedMult, 'red');
},
};
let floralInv3 = {
colour1: [255, 0, 0],
speedMult: 1,
width: 0,
widthMax: 225,
sides: 40,
rotation: 0,
duration: deg_per_sec*5,
draw: function () {
Draw_Spiral_Pattern(this.sides, this.width, this.rotation*this.speedMult, 'red');
},
};
let floralAcc1 = {
colour1: [255, 0, 0],
speedMult: 1,
width: 0,
widthMax: 225,
sides: 3,
rotation: 0,
duration: deg_per_sec*5,
draw: function () {
Draw_Shape_accident(this.sides,this.width,this.rotation*this.speedMult,'red')
},
};
let floralAcc2 = {
colour1: [255, 0, 0],
speedMult: 1,
width: 0,
widthMax: 225,
sides: 12,
rotation: 0,
duration: deg_per_sec*14,
draw: function () {
Draw_Shape_accident(this.sides,this.width,this.rotation*this.speedMult,'red')
},
};
let nodal1 = {
colour1: [137, 54, 255],
colour2: [158, 255, 54],
width: 0, //expand
widthMax: 5, //expand
points: 10000,
speedMult: 1,
colourChange: 1,
lineWidth: 4,
rotation: 0,
duration: deg_per_sec*5,
draw: function () {
Draw_nodal_expanding(
this.width,
this.points,
this.rotation*this.speedMult +2000,
0,
this.colour1,
this.colour2,
this.colourChange,
this.lineWidth)
},
};
let phyllo1 = {
colour1: [75, 226, 255],
colour2: [255, 115, 87],
speedMult: 1/5000,
width: 0,
widthMax: 24,
dots: 300,
dotWidth: 8,
rotation: 0,
duration: deg_per_sec*5 /5000,
draw: function () {
Draw_Phyllotaxis(
this.width,
this.rotation*this.speedMult ,
this.dots,
this.dotWidth,
this.colour1,
this.colour2);
},
};
let mathPoly = {
speedMult: 1,
width: 0,
widthMax: 500,
duration: deg_per_sec*20,
draw: function () {
Draw_Math_Node(100,this.file,this.width);
}
};
let aniObj = [mathPoly,nodal1,floralAcc1,floralInv3,phyllo1,nPoly2];
let ind = 0;
function render() {
setTimeout(() => {
render();
render_clear();
if (aniObj[ind].width < aniObj[ind].widthMax && rotation <= aniObj[ind].duration/aniObj[ind].speedMult) {
aniObj[ind].width += aniObj[ind].widthMax/100
}
if(rotation >= aniObj[ind].duration/aniObj[ind].speedMult){
if(aniObj[ind].width <=0){
aniObj[ind].width = 0
ind +=1;
rotation = 0;
if (ind >= aniObj.length){
ind=0;
}
}
else{
aniObj[ind].width -= aniObj[ind].widthMax/100
}
}
aniObj[ind].draw();
aniObj[ind].rotation = rotation;
}, 1000 / fps);
rotation += deg_per_sec / fps; // was = j = angle, now = rotation
currentFrame += 1; // was = i
}
render();
function Draw_Math_Node(width, file,width){
ctx.drawImage(polyA, centerX- (width-50)/2, centerY-(width-50)/2-200, width-50,width-50);
ctx.drawImage(polyB, centerX- width/2, centerY-width/2, width,width);
ctx.drawImage(polyC, centerX- width/2, centerY-width/2+200, width,width);
}
function Draw_Phyllotaxis(width, angle, dots, dotWidth, colour1, colour2) {
// colour1 = [45, 129, 252];
// colour2 = [252, 3, 98];
var c = width; //24, something to do with width. but not width
for (let n = 0; n < dots; n += 1) {
ncolour = LerpRGB(colour1, colour2, Math.cos(rad(n / 2)));
var a = n * (angle)//137.5;
var r = c * Math.sqrt(n);
var x = r * Math.cos(a) + centerX;
var y = r * Math.sin(a) + centerY;
ctx.beginPath();
ctx.arc(x, y, dotWidth, 0, 2 * Math.PI);
ctx.fillStyle = colourToText(ncolour);
ctx.fill();
}
}
function Draw_nodal_expanding(expand, points, step, rotate, colour1, colour2, colour_change, line_width) {
let angle = 360 / points * step
let start_angle = angle;
let done = false;
let total_moves = 1;
let length = expand;
for (let z = 1; z <= 100; z++) { //why specifically 2500
ctx.beginPath();
ncolour = LerpRGB(colour1, colour2, Math.cos(rad(z * colour_change)));
ctx.moveTo(
centerX + (Math.cos(rad(angle * (z - 1) + rotate)) * (length - expand)),
centerY + (Math.sin(rad(angle * (z - 1) + rotate)) * (length - expand)));
ctx.lineTo(
centerX + (Math.cos(rad(angle * z + rotate)) * length),
centerY + (Math.sin(rad(angle * z + rotate)) * length));
length += expand;
ctx.lineWidth = line_width;//try 1
ctx.strokeStyle = colourToText(ncolour);
ctx.stroke();
}
}
function Draw_Shape_accident(sides, radius, rotation, colour) {
let rot = Math.round((sides - 2) * 180 / sides * 2)
let piv = 360 / sides;
let stt = 0.5 * Math.PI - rad(rot) //+ rad(rotation);
let end = 0;
let n = radius / ((radius / 10) * (radius / 10)) //pixel correction for mid leaf
for (let i = 1; i < sides + 1; i++) {
end = stt + rad(rot);
ctx.beginPath();
ctx.arc(
centerX + Math.cos(rad(90 + piv * i + rotation)) * radius,
centerY + Math.sin(rad(90 + piv * i + rotation)) * radius,
radius,
stt - (stt - end + rad(rotation)) / 2,
end + rad(n),
0);
ctx.strokeStyle = colour;
ctx.stroke();
ctx.beginPath();
ctx.arc(centerX + Math.cos(rad(90 + piv * i - rotation)) * radius, centerY + Math.sin(rad(90 + piv * i - rotation)) * radius, radius, stt, end - (end - stt - rad(rotation)) / 2 + rad(n), 0);
ctx.strokeStyle = colour;
ctx.stroke();
stt = end + -(rad(rot - piv)) //+rad(30);
}
}
function Draw_Spiral_Pattern(sides, radius, rotation, colour) {
let rot = Math.round((sides - 2) * 180 / sides * 2)
let piv = 360 / sides;
let stt = 0.5 * Math.PI - rad(rot) //+ rad(rotation);
let end = 0;
let n = radius / ((radius / 10) * (radius / 10)) //pixel correction for mid leaf
for (let i = 1; i < sides + 1; i++) {
end = stt + rad(rot);
ctx.beginPath();
ctx.arc(
centerX + Math.cos(rad(90 + piv * i + rotation)) * radius,
centerY + Math.sin(rad(90 + piv * i + rotation)) * radius,
radius,
stt + rad(rotation) - (stt - end) / 2,
end + rad(rotation) + rad(n),
0);
ctx.strokeStyle = colour;
ctx.stroke();
ctx.beginPath();
ctx.arc(centerX + Math.cos(rad(90 + piv * i - rotation)) * radius, centerY + Math.sin(rad(90 + piv * i - rotation)) * radius, radius, stt - rad(rotation), end - (end - stt) / 2 + rad(n) - rad(rotation), 0);
ctx.strokeStyle = colour;
ctx.stroke();
stt = end + -(rad(rot - piv)) //+rad(30);
}
}
function DrawPolyTwistColour_width(sides,depth, width, rotation,innerRotation, colour1,colour2){
let out_angle = 0
let innerAngle = 180 - ((sides-2) *180/sides);
let scopeAngle = innerRotation - (innerAngle*Math.floor(innerRotation/innerAngle));
if (scopeAngle < innerAngle/2) {
out_angle = innerAngle / (2 * Math.cos((2*Math.PI*scopeAngle)/(3*innerAngle))) - innerAngle/2
}
else {
out_angle = -innerAngle / (2 * Math.cos( ((2*Math.PI)/3) - ((2*Math.PI*scopeAngle)/(3*innerAngle))) ) + (innerAngle*3)/2
}
let minWidth = Math.sin(rad(innerAngle/2))*(0.5/Math.tan(rad(innerAngle/2)))*2;
let widthMultiplier = minWidth / Math.sin(Math.PI / 180 * (90+innerAngle/2 - out_angle + innerAngle * Math.floor(out_angle / innerAngle)))
for (let i = 0; i < depth; i++) {
let fraction = i/depth;
let ncolour = LerpRGB(colour1,colour2,fraction);
DrawPolygon(sides,width*widthMultiplier**i,out_angle*i+rotation, colourToText(ncolour))
}
}
function DrawPolygon(sides, width, rotation, colour) {
ctx.beginPath();
ctx.moveTo (centerX + width * Math.cos(rotation*Math.PI/180), centerY + width * Math.sin(rotation*Math.PI/180));
for (let i = 1; i <= sides; i += 1) {
ctx.lineTo(
centerX + width * Math.cos(i * 2 * Math.PI / sides + (rotation*Math.PI/180)),
centerY + width * Math.sin(i * 2 * Math.PI / sides + (rotation*Math.PI/180))
);
}
ctx.strokeStyle = colour;
ctx.lineWidth = 1;
ctx.stroke();
}
function rad(degrees) {
let pi = Math.PI;
return degrees * (pi / 180);
}
function colourToText(colour) {
return "rgb(" + colour[0] + "," + colour[1] + "," + colour[2] + ")"
}
function LerpRGB(a, b, t) {
if (t < 0) {
t *= -1;
}
let newColor = [0, 0, 0];
newColor[0] = a[0] + (b[0] - a[0]) * t;
newColor[1] = a[1] + (b[1] - a[1]) * t;
newColor[2] = a[2] + (b[2] - a[2]) * t;
return newColor;
}
function render_clear() {
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.fillStyle = "black";
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
}
</script>
</body>
</html>