From c09c2b08fb487b612484c282516b1c790b35e975 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Wed, 23 Dec 2020 08:08:44 +0800 Subject: [PATCH] add doc --- README.md | 2 +- docs/images/lib2x-mz_square_walls-1.JPG | Bin 0 -> 38847 bytes docs/lib2x-mz_square_walls.md | 34 ++++++++++++++++++++++++ src/maze/mz_square_walls.scad | 10 +++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 docs/images/lib2x-mz_square_walls-1.JPG create mode 100644 docs/lib2x-mz_square_walls.md diff --git a/README.md b/README.md index b4729de6..3fb692de 100644 --- a/README.md +++ b/README.md @@ -249,7 +249,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp - [mz_square_cells](https://openhome.cc/eGossip/OpenSCAD/lib2x-mz_square_cells.html) - [mz_square_get](https://openhome.cc/eGossip/OpenSCAD/lib2x-mz_square_get.html) -- mz_square_walls +- [mz_square_walls](https://openhome.cc/eGossip/OpenSCAD/lib2x-mz_square_walls.html) - mz_hex_walls - mz_square_initialize - mz_hamiltonian diff --git a/docs/images/lib2x-mz_square_walls-1.JPG b/docs/images/lib2x-mz_square_walls-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..9e69d133195106b29e53e644a10c2ab9741ff2d8 GIT binary patch literal 38847 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

O3uXj0424M@lpNo|917# zQPrKfsjj^oO4!iTa&8ZmJ?uOwtLQc_SYa-lngJjfp^!@`L zy9v6P9!+HgL~34E>$3;I?o^+Zi+_&AG7l>sl zBHCImzb{t36h`t}L*$gQ<1k6dS52WCc(vCFCt(fZeyK<-4#$2`#d))v4yZiK*7V7N=FZX)n_5GSzdWdy6;d^ zznc{5F@PQbZ0!yUxPaT;esPhR^bzKE*gi$_4z&qRZ zf5!?XQITra!Z6g#d94@rjLi3qFPp23fL|fr@r)f}cwyn2WbLYr2Y}snf+tMdueHV? zr;#^e%~@y!b)7Y`a=N-%5r~~usJA#!RG0IlsGO4bt&fYO$V5$jau3N$bs!7VXE_R6 zlu7kA1Rnrk-$42U{&Qx;y*={`bg4Iw=Yd3U+6lqLwnOsYE z1j{Q=5jP)BwwkAKU{WA~0_^Pt6t;W$YnP1(-vzHEG$eSbhcV5SN1~Zvb--} zoFEuR*mji+?JlS7UwKSLDa)juyq&XN2*CZ86<5)tf}%8nRf=_Uw&ToW?YNr`s?ivm`|+G%0j(y#KoI)as}7g6%@&4cz8mj z##j%yHj24Jeiv!`L#)YqAE`4Hns>xI0a4thOV)MWkl#*k)Qy5k)qzs|K`hpv9b z{A=^@+!)%*zt28?I;k#W|NOu0VCprr6nf@eO9IDg9-9m; zHtuN{l*LB?J=0j+M@dGdQ$eXqSE_fy)FL5^J+ahM5@kT~_pbsQ=+p3&+(o7O0jZ`G zqFf?>u#~6oYlesuDh%h8DK1WFz|7{({j@Qk2jq}&UC@eg{wdgX#@@F5w}=3tjz--r z|EF4cD{>uFij33b8eRSUp6hXBM!X1!_~-+`;Cd!4X*HlEByM7AtJ&n-)dv?^5Ca|} zRN@98fEBilu!HR{ZWQ^pD{cA{WS}(ZZ=qQj1k|~%$8(=<>)7T!`VDv-M$v?Ydx3B3 z9{_K3ER7j)%v#u_&rAxZBGSjCpT(PoYMF)%xC&=X>2JPE>TqoN{#tH zFZx!u%W|PP4d7jc#>wi!w#SZ7zwkU?cJ6fk=}mfjeMT2y{a;!0>H0yxY*b19YchY^ zRG3iuN1~R_M_y7;a2N@-wD#I`3AN~_-snS4lR^HCX_3(=2X`fZ$u0?OOWrzmPY1>W zvxrpuA;D5v^qyr^M2d*>so~c=L(Up%#S`a{Z7cn(7vGvxI)uNbNN9ez+O2ultvOk( z%&G^UpEYNLq7ML836r^!aigRjP#uLe;t64&?oLBMe(S9OZ0>Nd=K)YPROv7RN~Pir zzSd6l30ZK6ult+|+!Sq1^O#sA$Y8g1@Cl5qh;46PqoY>4db(UR?;bTb0#!AgkEoqd z8Ir{rydCbOfaZDa>Ln~;@ZZy^K}2*SI5_y0gv}EM_Er0B(zR5F8av)1U^HJ-vO+!? zB{@Hfq$la6W@el&jtp4xQyd!-Oci~L(R&gbJ0joL3rLOW;gR!m#cISadDddPbcB^g zb~Hs+lT@m@F~>&Z%DlUUD!HQbv1rUs?3G3jYl*Dzx`O4&l&PA55Tn>Sv2|r=Qv;`Q>rBiyE3Rh0p8t7CGuU7B85^?UArUa2QSL2pZP&dyCXTv0pH!F_(T-a-9`ly%v_|m0b zEr+O$TA1QUHPAd-t17PG2{OH#sVv-Nw4t<6`(AD-j*%Lyc|_{Ls;hS+c|u%Uq8iwB zBF?+26LK!e99S*U&z5w*I7f1^CT?=@+&%V zy0oXOmRlcR1&@fde6j|y-TL+4WyT6D053m{zz)Q=0=d6N_y%yv;X5O?XE3K03&OBUXS9TVe^~vE!c5$>;(+8#}M1V6>>_Dm- z7k2+pq@&JWDn2=!ca@9!b ze|9pbZK*qMV7|{RX7oK9m(`8qwFpIIe*k1L-2@wGos-x;0Ccm-YHLO?V%B3nsLK$J{i|9OVRYe&ywj6d zW3fB8*UVcqG5PeBXJy@&*n}lE2FiD0pB0ea%J-qvw^ChsYE)b~t?IG+X?;_2B8qkY z#5%j2%*okrs@9rN#f|xyGKakp8FE7Yoi*hu@&P~(={C7QX?g&B=hRH8qhuh^a*$T7 znXqEVy0@K*gYlsCU{ICTEh-hPX=*b?7NC9&BaAkHKBn z81hbuB!B~{{@Z4|9bPis@M>@8ld4u<3Ia>Cfm1oxf6|1sGY%F>-^X?1wd7+a9b8;L zb1C$-jXbC3>hbQ4?O&Co+J3xlCxKMgkQRFGFILqjkZ?rAKjgSxp;WG z(NHlT;s5oKCsbU(ar-c;X8GP)sMAmVSHPx5(ec@ImAo%VE zqbo-LHD!}!@Pg1sJt+p)sk$>#$qRG!IY7_2CHaRJxPfs89fl}|n9?zzy z32*Dy5LF!owkMCKJ^+3Mnx-4Iwp4uXt|GZD90Jmq-Zl5{4x8!SJ@IGNl+L+=s6)oP z`dMe=`afeiVhs%BdvK?vadCl0Q*^?N&!CrZmLjVORJ2dmaD@U4BAn)Z7c>=)pr!oXGp0OFFFQt^u6RxGRPCf4oqj=vQ;FZptE~ZwtHwz@w({s zWJj`gx^;qd0x(uzf;?=7YHBn!Tf$<&OV7U0v&omGYp8LGo+v-Jh-QWOWdM}zIjWr-JM*gx{) z(^@TGJEg9bCFppnT=xp?*hMEUi`T^U3x?dO7jA3pTgES-leV`52)LI)Bd+Np=FPIO z!#$6ZX9)HyQU|v0^>0$qSLmV?Dc0{F`%}@82Is#1q3vP68X{6@_+4z;1k3OB7>~UZ z-yz=f{Qhuec?AKFn2$e30H{z$gI4`q&Mx-XFZzzd-q%nH<6g77;wMBYgjp^;T3-3k z2|;YtzmTs{QmFVClxh)n4Z2Ea84&5q$~GPFArwZbPd7%PMAGK})rO3&NY9E0w9sqSo_iu2tdB2jlq-%Ydq z`5Ty4g|XZ!Cy`ga%rWu<;G*?ChxNp`HCS|)t&;s47_nCH@w{dQa$@a^^U}R({`?T< zucb>H_iun=r5sCp!``i*&H(8Bx* zJgC|b^wVIT)h^|O#c)%sZ1GWQkRCcIwVT^Tv4Uam6P`kk-htpEsy5%)?l-%{RQ|_W zjP}w_#`h0^&Z7dpU3KrGw&=#e;LH7pHJTNv-ulryz|6a-*j{)Pf!uh>;{j0kL&29! zY;={@6TGA7If(!0o`WLu#aihD zpc>Q9on*dMNO=BTqUj&q-tTal0ksn^uutwatao$)_5+fra_aBlpY=LGXk=lHPN;9l zSiC;ybcOn(qr;XpT-KxpCjRc1^1eI^5;_88YsF~+^a>YLyHqx?%w*~_9 z>_*`{PqXifW0`T)6}!QGS_XwDYBfmTq|1rfL+DsKr2CDz$6P>r0c=;shk+UFQ&9`R zecUIl!rN7zs($XJhQ_=+*~TiVoY=`GC!T!yitjT^&&3n|!H=}O3K~?cgM|C;V%in1 zIGx!%3o*(92I(nms168Iwv}4-YE7Jr!`FSt#Y}*);C;GftfOnh@^LElK$!wx6>vCa ziBgbTsFdZ$8B|ttLuK4{{sGX&7lp^n%$W70p_g1Vl_f~wjBtEw+C|R>BK0??QTFcH)d-IZ5ASxj zb-Z2VKZEx?I8FJep6bz!8EULQvKt^@3c@YSJD*Bp!88;9*U`ak zZe0=5_d2}IjS|quB2`~6#BN_5%Z3$SODj*Y=Yj3_!iF%P_PCx<2%7u2L316Yy+J5q zg=sI&4A%pUSknJb>eF@Hk8H|qeCg1dL{dQmCs$E`*ax4?Wjc>|2 z%A1)=nQ!{a5w8f==p_fEyNlMD*?rml;{HT3y1v1F@>Y5#4O83f=X|n4^!Rl&3NK0gALCtqOiH@ zQyITan}qRp8O`@;^WQ0}SqF-$WSc~47KEs*&M8x^C8PBr|7dd?S~UV!OJp^jP>l47 zW(&bPb5QDS(hXe7e58G|semJBT}NWK1m75s*z4uSP#G#WhyYR(NO~dF$uNR@qnBiR zx(KUEOP2plfAx(q%;-g+&L#*vc|Ke7Ndc6|4R%J1-VrJS4HNu0$&u?dD#m6VJ!7|8 z>LOz!O9Lx@R&BH$0GQQ;r!L1#Qk_@jRy_b5=IL$f%oay4H8~_x*ged6i(l>bgy=q- zhd72R2&}2{%M0zOjq9EQA+Il6tf&@S%QlQ*qIl=_V&BdU ze9nZnrRS7ic3ZJ^e*r7>Gd9~_IWAx_Ha~?J)ygi*;<*q9&z>wwhL^+1>0T#N(@Shx zZ8ZhMb4PI$)fJ;;+Fr68TRZ~5w`>5yEXH*Ub?2#y?nk%pKFx4`kGGLjlmQ8z!&p`! z*7h}=39h03wNi?>Dj4i1mX2_&o$rt{|HCAW=fs<1PpUS->Ll$$%-WoV#zLhqOV=Z* zwo=$1v$WRWKJc%c#}43y(>2zWYZsa0;d$Veq{FFr;M(`R`6vn40yJWI^&ozA6nht< z?2xs4W1Q>!!QxHvAzjjx6rch_p+}zdl0ffWnQjBz*ymHjS|cB&^u^gVU~AW`!Ud4h zUzDos1XddWXdE&%1*(!kEKBzMeD;9?>|+`_(2qE5k90OO|5jEq){*?j`} zocPAI8XBh%61eOw}^DeTehk(QQ{!+gQ)-Lm1 zUwH-nIohME53i$HXnFXeleb9IwgXyft}M)p}C3 zasO?R;YX@9`MVxx$)|=PQAPPXzVOhj(|+k)lhdu(;IjoNY5SUxWW23h!D4qB1l#rg zFy(ss>?)M`WF~JW|5`M_LJ8&aeFVGGvUMDwE~lRz5!~MusMoYtr}s@B zDIcd=tXo)5gdapnvUhF&3dp918uv5_h~>d!CLblJM=wT0UTZ_7*Nf*|EjP@@Ul4;Z zo-@W7XXh)1FRhMzyvVJda^O6h4`JXy8rv{)mar5OZHVw+xOrzhz>g{5_1Q?e1z5|+ zfhas@0B~mnr1~IkznbK0mehgh@*9xbZD~P@J-Ld*$&swF&_>XqKjTjP2;GNq;9QbC z(X(PVYveqyZ0Tvgth}9s3AlSCy@~vJP52s{yh2>WbsX}vsVeC|SQ?nht2Y`{zHF>e2MG2p$`fef?L4S|^ z9iJ2Fh|u+0s+x_HA9q?uuz(4({HxGK)HJr~A;OEOih^r&d#ngL|ATv$$~*PYj#W`7 zf-RBsPp(gqHFQ5d;sG@sV9fS8hWmhGyOmEPIE^jgE^_;CYWBzeAx*>Lg|~Ek&&pWD z+1in0yo48RJp_#T1^mWR11v`ys-wXrg&KsmuiNru-aR+aCUd~VY}p=HpTh5b5DIUC zQ#Qt;6-Mrtw}5`e8h-(zT*Wv#k%8e76^w8e2RUF&>(ND6uC3Z|&bEMu;G<`~>KDa@G5a_;2Kv;W*lX!r(Qxf2Z`)ef|Cl6e3i6!ea-s6wxF*nVf&^ymIS$W3ef=Z1e%@mzNIT0Du{1a#)EMNXEAC5^*+ z$Bpc9)%-ToL|%XXGd<$eARol^_e^R5@c}m4XvTWjgtE#KmHdsfLH8dSUJGL!lF(FU zF(O4};^(8bOl+Iz8H3u*$fJMg2PhqjT`_9sX1pd`%!x@G(fde$lRR}aN#E=0F)+B< zzmX^3uGu$we`e?pD7KNVwEqwSmc`2wN94vpzvw5N)&C=}c3m8dy`vrP?RNKLF(U12 z=104@=8S#f$^kAZM>NXk%K`Dt-$vJM4&TKx_DNF1YVE%Kov5!~rI6X65ZNxeM{n6?AI!He|$=le$S>!_GgdYc@OU1 zp+4+>uIEoJbc{2D&`||%IlFxV?}G1SoC>>Ig`;&U)Y-yrgWh1-k)dPGYl6T?3U}GK}vY)BZ-eC(9(%{+xZ=;xpm;Q}VZ^Abn z+k&SGuT}JrxSArtcuEw$+UZpwsPVOFPz4qi#p%+WBt|X}&@|1Si31sweB+GPuStgp zyJ5XT9QJz#6b7E+SW+f7!mP_=STwye3cqh_JDBBmI?)}*Nbv}ocO}?63-t>X!XpLz zIk7+nImD&R!rkQKsl*RuZcME!c;H1R)4C^OIwbRAwk2PBcPw=;9UmBjNqo3aZv;E784TIzw#QPN5#D-if*JVHR*YcHw2S zx93aYl2g>cs6*PLxmjRKMfu&`HzY&r`yOYW)@-HWTuuZr{Tds3kHXr|dL>F7)k*jo zYqd0QbnUft;hmsdKf)W_;~dB`8Li&LdryC5y@V9{VI5gs zCSK@r@+~GUUKoIXT7hPUmL@1GCZS^5FEg<2d~<=fs6E@hn-72z*!RfLA-DO);oaDb z#xeK(Exg^6i0krf9|wlOo|5j8xfZ09HKG2#zR`Tbg^FuO27P6}nd>dfy`qUJs@HJJ zrYi#ndTZTLSY(iOqU|7Dc~ZXp6tgab=E(r3`b4h4#A-|E%wvb5PVZd9F0>?$r}Xr1 zS7J8?Ehx^_CsL_cf0);Y`g!wYr&#T1b&L?g?K;~HJz!z(6Az`YA&71LgrSZu`zBsE3`QQic zjaNIwU!im-+nVl&?*lL=SL)NMvw^$?K=$A-7Y@CPs^@=;3_r`Tq)N$~n{CtkS{w58 z1(fZ@TNKbz`1L|3@_m|6!)th^%TG`BqW#!SIfYzX@WP^hvP*7Lt+U5+Dy~FExBhv^ zN~3AV>h)S@BMA@~U6-E$N?3&N_=#fmXlZ1-Xw~}k?cis_#g=!?wSTrc$;3-Ak~f}F z1G6c5PC8nt!+OvreKM(LPE21`{A2{K)N+uh4!6IvqZ56su;EHT+BczpAXV3tJ^;zU z(F|+;lq2y$j?7E1i-OQfO4fqr=tD{3=s`VMS_JTab-4@>)lxQJ>#JbNag5vFoo~Gg z;7_Eg@km}thBbCC$%);+52zW2F(((brCPK_`Z5eq#WaP+@w!MYlZ)m zCh<_pG@qXc8a@H@jy+i-B^=XVoc}q`-W_*r`22dFO@-0`6%`3IiKpMt+Ifh++ZdIb z`J<{S&pLtr#KKd!-})8zh=Q>(wfHt^6Rp?*D!jr@MbMQeEF;agDvnD?=`0-9a^XV1GkMOH z|7Fzqq}F9m1${*P+XEnsy(^Jeu$Y7=qbidoO2~?CN1pnKs%e_x{Ju2l&5X_|8!jtL zb@ZiX6*8%Ks5~_DP`P|+kDth6{2bFR8xJ|MY2cQ3LR6I!XTtRwZ=mbXhfB zge>I32y8AD?J>b}Ep z+2RD%p_|ztJvEa(n^SxMMEWa>-J-u%OpJ!R2#MEJe&z9WwfW*JIAJ%Vp-s;rKGETh z{6(tFt?nX~l}c?Ig1n%boDnprlkwuYwOq-Zs995Ak4WVMAk=oO8S+M7enST%WT23= zcf6T}B!VHM0(_Viv7!Mxu@b14O!6py*Ckz6DE0sdQLC*n*q8k|_Y#NHiAPK5wrDgU z+ha^FOH$viQGrf0wF+P1oWJmYHM7>aK5mjmS0~K0_S?78`|wM;O2?B|tIPOrum896 zj9mlqTGtb&KmGs|D*4!4<9!DXT!F1z!FPY|wKS+VwG|^YlO_t#4(NRDF zR@h=~a;sFh!dtoyFphOr5W$}a%W9wAa&ZYY{ehbWWha+cI0@D z4kv|;#X=Jr64=zNKthMKuEPoZwtWNVX!hoB?OHj>VWT|#5aAwYuMwOL{g@p=khMc6 zoP+b-gt#4jFP_`MTQ=fk$DxB;_I@W`q1{cV?Woxu*K}4| z)zAR(@rwK4HMi!|z-c)1)6;1s;;^`R-aopyC310wc784EH>=((0B&8=c5v^r43(_O zk70gpp~Wy|Q1|$){HP0xKdRz^?jGbf&Q@?xbb{ls@%J5|0 z!_R_-pCh04Anc*YLo2qL#7okAUkR$3x##y&L}Gnjd^S$$OoF3E&YFrCFNUR)$-dFp zWAscGqj3aVo?4}5aFjcJWy5}BHuXuWug=F*vm-Y%Vj0_8i7;(4cZ(&#=QVm3lO=SJ zo;8-LCwENwY(BogosNbZ=$)wJs4K{8M}X{;bC%>aK9x2-(;B8RhqmLh+5V zYl^zUQ%wkv(Vi^B(cj5XU7xTH-xB>@cr@WyBKPZ06PA8&vO*T; zOxm}kXmdQmjPsPNnUGq$#TP$+fT|%$OlF^fhWOkE9%bJfbj*weq~Awmu}tWT6YsbK zS@8%Z*jQ#i3@ z#wt_$c(Q=-osBvzLk5T&0l` zkWL;?V~3VE)kV)G({(Z?g5uanCLznZ@P*Yx>2l*o0~;@T?9B5XsolQ2-O*lPMa`RA zmZRFnA4Rax$v5K>^_hcsThlO_v^{1Sf`kVj2_qvcFHfsv9nrPV zKrk7~TPG$tCJ1YKHW(Q<@0Wq;pcx9cQn=b3rb?gTF|C>K4u8Hb_Z=l5L$Cta{SVZ- ziF*7>c36jug6(;r4V)| zs8H(n@_WTSWZARvG;k`=n%lo_x6v#Xo{JO}R_3H1tzYeTz)2<9)Evk*weAk)cN5kI z1n;m&6eR*BkTUY%YApLAzR=0FdtZWe%fWeiu1PRiYv}n$@GAZbd2CV%!&<3PElT0` z)rLhu&5CKZ>D^Zi;X5e3!{pYefaR#nf5Xw{e`MNt)0bmMro!&*@Gnx@lN z1iR{|37D%#<#b~YzQ@m>v;+S7FYocy&d`9%Qd3#q1PMJj4g68E9#Pn}24w$=l_Pkn6&QvVUYPhE;s8;JrJXHuK-jwYFpVw=6-&8>H+xS(1x z8jaH-dz}+q*^p+B)<=e5i;XShH0e$gyB6?Gul_V&W4$vaJm}ar@D}AeR)@S!rf58( zh5JU;px4DxcY@^OJH^VSZJ*|h3*||B28gf0`{;iAzHwF&`DJWPIs6J?WWbyc&R#1a zJjv<==a{f1AOCJs+_?K?CG`P%CU>!|Gs-I!O>lr&2nBp+ntKMW+|g23?Oa(%&QOE$ zn4pN|-Rt?TJR(w8=FnGB3Yg@e2z-S{3CnKOM{!GYfqlS^ zLu{Lbnh;H8!N}9rx?8P1Ff)T|2(%oYj(KO7Iaw+(Y`zaB4V`N5WxU(0{|8=Z?JDev zCzhDM30$crV2}^T{t#2MbzT@DO<-{NmYqfWP&h#92_IF>=hyza0Qc6FF9<=t%eNt&4$slrH0cA1buZTlqcEQIT1kw5Jq=_}T-VYr zRIgUif$wHn9z5jSD>t@j|e^PRm+i`m}QgZWj_f0DLpDy28RI+ z^jlQw^0DzK#Ya9n`d6g77I<3ck2zJR_NO0f_src8I_y#ovC@XNlXgDh4f4J$B}?MK z{???`Onnv!3@;=u?6yfBNh$8!+}0U0V$!n06M_?^j+B~5UP5AI5Y{iNR$3gh*J|#- zSsWLyg0(R>2MpM;8!MXqxVPuv2I8sU+Snr%0y8~UdveRVTj^yAd~Dn& z=TI2Jc#Djg=5dBj&OwX#GJ{sBM zz|060Ay9Z`z3?5&u-PtzJV(i$4nt5-{5BwCq-Bk(wET;L&~|R(_9c}viAX%Yl{A+Y zTNeODfic&~%V(*7T-(Zg*zITF7#F$R{Ry$ebur;b$I|`1e(G&}2TMj$sljNI2DF=) z@kWuOE8oY*Isu=~MUJcH5E(wpVD|lZN>I^TIXisu z^+SQ;S|~0>in|7vVx_oyad!#s&=x0Hi;@w?3eXgYY<6m37 zp9q|481iHR&0(Y9T{?b4`ciJG*G%^280Of9;35%^m2o{J{#!gNO0;^8JtY^QAhZ2$ zCId3FH{k<32h*E@>DCj^k*N!LvP&LBPBWY8p}H7pf`b-bCQ7emT+@@?x=6PY5(ah} z&?1#_LZX_Ik61Ue8L*KW(HU0PPh|UM8S~=(xWdhs)bT zH)(F$lEMrj@0Ro+*H;pX?1P>U-Wv7Wa$0VRk|1j3Hkely!G#y3Fs5S56EMm&II!b**Esvs?K~VMNh5!p{e*_c10;r)icGJI%ZH#Ux{N z0+RSIdO(r)7MG;h{AK-Dg8j2-f;j09bB?>3o4>uKdQ6V7Yq%ArUKwqfokC1cq4vL@ z?v*~;to2w>tA!_So}N643b_3?!dB%jUkL(zUUYj4P|P`)eK=F%9JcaPeH%6DGAZ+O ze~%H5?udYMZY)(2j~N5DnB+KiXTdKbs^DB-;hRkUq#O#c{jsr#mP`7o0 zi!3MsoN~fUMh5lERC+~(Dh&-MiKF?t1sxBjKT3O2qX zWlyI?HkRnQq)jXy=S^|+K@8KX@S|76U7 z_W3p)120UgE<^bjJ>$0|jo-ZIGM_y8_B5tIr*i%Z((Nh*BGJD+^KI+Z=1)Ki-2Uu4 ztfRm7i7G`yV0e7Q(jwL5EBjL3BKPQ$)3}$hy5F&6W=M=@i;DhIhovpc$kKR+BPtPX zvKDH5ArW);DFB`(^}R*UhM?@FHH5_h$ceg^gW0bwUS6s4jna` z=|3X?G-`Z^E{`}Un_9qkYt7&x!7cNQ`F>?N#=zQXRmEvkPG_)@)q;PXyS2NIHED{b zQtQGdiFx4G3rH`Kq&-|9zxm*I%6REO!*7K>1wsPDvjc^Og!y8`1IxPD4_F*7O;hV) z3#BiL7VDFFz6o4~M{}p-kLk3^pvTX*+jaHzsw08Lj7UBXF(%aD=CFtnUuxPlF7dX_ z?|WGmO7c8C>rQr2+NxYkN?ON^U#sPNx!6G&hf>0BqshlNtEoAgd|@zuc(2gxQX=>K zENSKIwhNF5$^d8aPg2ewhU)(tW(WoHheXGW8TMm^N-cykp87Z-#c8fN{hpj4>jbnf z&m69kDc#Q66C-?})RjD}yK!}@F_wfy8d$Ic{OKU**D)J$L(1tDV>)`>@+9y0<7)Rl z^`-QYxy_$Gxi+(c&L#SO#gdK;+C#oMfO`=6d_{SmY0>+Q3HO-UT6=tiorj`{J1a9QGi)$Sqmis+Y-|4{D&*B1|JA{rMT5SS zx#hOYrMuVm73uizkXC^{Tpii!yu6jpFFtR>9D} zPZ%s(E!hjtZm!;@O}=Tmyh-QneQZ%H3WW)SNU>n<_r!iZa zW^=8mn8!BV)Jn+yllE7_QBbCU2gOWl1(DAC(-@V#(l#2esSW6q+~?t*&oJQ%Nb|F- z0;4M$SpJc6slj}y{uL71Y-NY>)6Y$91-umIw9Wuy?E@c-adsK|ni z{}Q)9rYI0p7#$2B^(qdCqyA&or)0Bb`5S?;M6X-7CpiOww@xc=am;%~AB85H_#IB% z*T>_p?*qImZ9G3w@^4rxJu0oMGDL&CmoS>JdpXYOpAP1&hzbOFwh}1V-Km}^{CWckfsX8!|5TUIZ|eS zE=RM5xyy4wl>a>QxyrQ*$kH8kwAi6@KBE%kb-1BjS??xjuRb*SY3A&^t)J5T?98(uS8p}h`kUS)hPa*;a@(I}9)K^X{@ z?Zxyg-|doK)NCdWE8TatcgU4uW@{i@q+AOLR)5AZwtA$$(uW_@+ham)yO@`h4AYQY zZi^;zZ;A2>Z{)k~AoY=IZ6c*!77sPeNI@pMD?dF8L|KmUxx4p=TzjV8_;TZw zSk*q2dL?cGo8DYl|M^*eAu)BgTY&^N>O}Hs<9pP)b|qMhX{sgSm@?(x^S-{i7nUH| zi8n?^fBzCA=C&`uRP!Kd&56IBp_idx+RFNvkJOwqKt-&zKr@? z2qkZ2<|f?C4sEHE*}W?nD}V`U`Jj!R97M#aYAHOeMRMi;CZen`v(Lkf9eVtY~fsVjLdrVj*49<#2} zo})7j7t+Z3rU)*wfb^-V{0iI0%w#sl09+HMzLo$+Eef`iq#TL7a1xF~<(_b&XX`bE zU(ppLyW8fqCZznn9XuO%!o6FVJW?6#hOd!9@%j+(B}ZfMYTL#7iSzWjz>h4fw#*?l z>dRt*egfiLJIgSxeVlI&h>^36Pcn6}cp*H)v_yNrym)?bRaZWib7hAX%-4Znu8r*^ zCaNMGs8cSuQTk-mg@xUT#JLZG8H`_0oR+kmhFB-J@rF1TTCui4Qxuxaf+-AY%Nmy~ z(|5RrUf!?rc;Ov=zr*c+I|jk63n3_VOW z)e8+#nrdo}W>5LD@fn~Vs{c*Gq<--~K`3&jPN?;n52al%jN3ANW3*y&f?TdEL4Iwy z-uw}q#VJgDkUwTnbv`pDo4`(g2@_>2HZKf|OS9D(MhU1z%hcHWoN1hvaK8)2@`U^E zZN&h0Nj$Gcq|GB^L|@<|Sshm7-`735k)b+7k^SU9SO)cZOD*MJbZ{9i3?E%fn(2I| z6g~gJdX9qV9d^=}%WFg+#O2N*H?j>5>j!&s=HB^+#RQ-`8;+56bJot~$?%Wj2Nm-C z$?d%&Cs{tEgrw_4=}rc>M&;jk_y`kVHYDhm!c`tbIg}(!82k! zl%e-bx6LrCVnq{IInn{P^}1=}L07FazM+x&yuyg?nLC#O!X}#O$2^l-pZ8liPmjxL zw4v9-N0iZ~@eg$t{OzbWbU-phHyr(u=R#i$V3R1%v5Dq~mo}%|)2NAA2S2&I>jP|A zt@>LwDiHSkx#}W>J?6KqUP=XPZ<|@k2PG5o(`_T|AUIE!Ii34rCl55Yq2CN?OdKIE zoqlI)xUW@-b3+xdjA_lN@m^kFB{BOTtP{|M-()YatSjl1<)N-cA;D!N8QyE`{8L2_ zB!mCfo&MMhA(gGCg@i;pq2jh}*<6W^!iWhtc5ei#^J~MjnZ4`HV!q3dcFq}2Ana-B zx9_%BYueG^2T~WU+>|LB&^?&KTxe^@rzB^K2z$^Nagu2pjT%sk0?U zW6u680#d5N2p9!EkVt8j!tKG|s>o)dYvU2HKe3-}hFi3ZcRasXT_~u25pKsT z;8srB#oE158DZ~}%J#-yx`tt*POZ7RCZczcNzeJ?hH_3&!m;zx6^}4}SlKd1qil`| zf*41yG|4Z(bnIx$k_96nBl&pw05v#?Pt$|>&+h?p*;d4k;WaR-l%8X?ZV3U-ZPY_% zbLHzQs^2jSN}PY=Bx#1~9AkQqp84B8l-o1YYSiWrUm&xrX!hdBb?}ctTonI3BhAby zp`ETvc-9yWG--E(`GG}};;Duxadg+lm=I!xKb`zIeJ%$J;OcJ@keYj{emhRt87<}E zQ^Zu|_2mMvEBR75)!P@s5u%31PDheInA9=y8_WB6u7`Q_5r>MWufYW=+obyHw#Itp zFIAWF#R=hZn>|N`s>jDkJNYpkI!(PKkFsX{c)=*2srYWUg6>{nDZvyj7Jl(-i2z3N zSmBV{9&()#EAM8wgWg&1O2C5X2Mo5(td~~vjwm4^)|D6B3zve=k_i36Zic z4b&_;`;>N(JfC+E`Ei4U5E6>;2*W`Jx|LT|KJa03?=(_|xNN7mtc8-Y8TKK5xL=L7 z(<(|_Z>5U@U`3lC{pQIMWpz^^I;o&kQ!C@x3!SLC=gv4cKRv_KFk4GyL^3k05 zFxu`_O*T#Q$K#&DKBjQmht;GwUTR?cJR01Dii)0|xTP&VB$opwPatnZ(7@ygLe#HL z0C)guavY-9Zp`5&nY>|rmeIsUW6kMG{Ocm`A>7*wrrfh0T)v+Yc|$l!uO7fyD;1LE zeBvo8Y3+>_pK7$Jv(#t73YvoplA$#1MYbd^?C+er+ID)+Z|v*4#7zGhEI07yr{2X` zt8(wp-aHxwctcU!WM4L_Y_o8s?$c`UYuZ-r0jT{7y=gj(4qBgS+=9ybrJuRRn z328&LXz?_s=5m*}Xrxbs8!hF9P~F!_rMCeKcjhoA&rOCv#lczEp)L1-MEXmSo`Ik=&G}{`0a_oecT7&M9_(6@41St*K^R)toO49yDnfb;;IqVZ8W3-}{`Mzg&dv!xL-e8E;O3r(n+rZEY4h zBjODUslT!7)-L9^H*dl|qN3;|KIFhP@0)29iP#Ct`%^@~QlRdUp*87B%CQFZs;y>L zYnaY)O1F0!{q94ccGx4}o%uDuXrj5?^h~tt%hSY1!Xr+)vj0i1n)E%Q?~C-9;6~(fixBd6i(!^fe!k`I9Y4V$n>T*KHbu{!VMsM^j zbS)kd$k$* zhyYPh*Zp_XH&-_?zH z#w68^4P5-v&3^PX6QOimX+GFY{n7gOw-lI<>fhMY5{*4$YhzO{HHx;;}>4e|u8 zt1k~F&jQzT1wHxsPo5~EU6TT|>n~0siUdtaynn)e6J`wcCOi3LpZ0DNLgZHWp2nxY z?q$?7c6Q|ZrI?&R?@j!(+t9q&Vc`tX(+b$#vuJ<(Z8W(h)J_NbVy>I&gLM?H#P?AY zAl+;ckISrK96dp03GdEOCvTM55s92oP@tk0ke`fcH1{;6N0^X1S+_Q=ti!=W%AOvL z=HREeiH4K&1?j+I38;WC+E;G|rE;iSi-n5Y#; z7k5W~_x34Vf6gYYguLTFf}Z;AMCfjGZ;hAzXTXDtz9k>Oyd_<8c#j&i3T!8HHsFcL zu@0cf$~TmB`MBsiUtWkfD#9;K9$J=*Vxw$XD_7tu2+LrPGFNXjmPvJ zSZekt{GB`DC@h88645)QquphP?8x#g8J;B8<1QiLW;)`|)0|LCn!Sijb^7)phTv1t z@PcLJ+=I?(%L;5`)+-^a?^~dx^LL%JIL^E|Fknrq*ca#>&$rQ>RUH2$RKJbbc{X5} zQwZfRpH&^_F0&kZnw?}md4R1$Hg$3ymPEa4&goeFS_FTNYAZ)=7KZsEFcthoXIE@V z%^GtIe@C#iIn+HI3gWh=?B&0e6M?i3ofh<@^6GW^bA!Zu>&x8nXsJGYN7_XU$8(BY zEs#`|kBuOvw48e2urJotBa5X?2w~|v{h*;qmk{z)k?(1^^b4Re!oJ#3y4$v{dGPs^$b&f&a>^y-fq2;@h@b`KcIU|wTZr}z)T5O|>jdD7t<07xE zdb{_cm;jCD;@yk;`l-9*5nkSE2Llsni#1`=C{b#JJR#y)I$sa;4Mn8n29(N z0*nqQP?j_^aB{danT%b8J71+}*1mMYkQhF&;{2WBvx}3f_Gfw%b45X^wsWJR(Zvke z^1+kcZ;$?4R-9wkh4W@ndZF*nJ`Z@zqDNC4vuSyC{YE?7kmkSz6$MP36kp5HvnT{vNtZh^tLUV#!DRliJXCp&~2k@wLk z#T6UE+)6dU(pKGbo#SZwx**6B@!&C2XJGNX)Wx{YcMx@xG7fo!`fE-FZ&tMy0-AG91sEOfAE0mKa)tjM98+;sLXFBm(Qf<=EfH zR13b2iuJghKfG+7s9M1|^T>YxQK$#fa62LQL89kvbO9=+N+W3Buv*GeKsmK0X;9VH z!gJ|AT@`(&Z>o}2#|S<)1B>=!Ni&rVnm+jzZ!4aDeq|PQmPzWiDKcJW^W94Kd3MQi zX{=+xqMSQpH=KvMYBxO%`kFJCu`cYg=+Y5O+}?YjMu+{SPDAh}6@mhoT7DjV12f3Z3yT;@<*j5Ck`ZZ7J zduka?UFv-z-72|_sLb@O3@(d0+N#_iRpQxJU%wX|Pg5GZlX>HuG9kOC6Ukvg19p)+ z(Y#Enuer7KqPFDvJ`{dmjD(7$*dW|Ei^3Kz!mvlg%a;oJ_*HGI2QQZW@N^|<8)k}`mTo-|LbK6pbxNfitLP|W&d9>93xlvD@VnHa7IRjRxIH-64 zmXt}CdYSnk2tab@$Srz>(@iO2-`2)d(Ob=NW`-$>S5Qxi(0UrFou}MO9)bt5mY1_* z9k`~S*7_+{j*$$Rax16o*)}gOhx#2A;<}cByZYnk@PMa@Y5)EKoSe^+@&q1yUUvy##CGxl55g!#~tQGI8p1}st z=FBYGM@73X5281pvd#7k8R}*z#do>2pqg^}0YmJ1AOwKO-MNw?q-8Bll)wNQOBa3V zqeocQ4xVd=F0RJ+V?M(5?~gK7{?3gyw-aG^t4h6DK7)imtr%luXyewPXHez}d|QK` z=X^DMAkdS3*JZ6@DE5OV0=~$#=UR!I#&dQyI zX7bL03sGnJk0w2rpg;kD=fSKn{~>p!IvFjK{%Ew6qVLGdZ@)Xxm-mzp*T0YkqnpMi zCLHLax1sv#@b`WsxTlb;pX`_pLxe;U(9e3Y0%;N zDwOgBZXXzpw+VZScpTXdwy-kHP<7$zcb;Y(W z)lrvY!Ox-Y9O{@EMz-@PKeTFbi3dVZt0Sn6aoQ->RS-JFLL0_FF(rZ0%$nw`a1%TOHZTEU$> z^i^<5)y#9W$FCXiyH9$YK)&uh35%Cr0*8g`XKmmwP0xTcsd6V*6do!H)-2yf>pJZg zy=;I?>nUc1RqS+@*l;cDS%X~nud^JQA_zQLe8(v=*X7h#JoVGjGoQO^+VUw!-b>ug z%wQ-T9$9mPv^>UnX;PVGsa3_%Bg~ZN_c~uoCNVQ&pw$iuEOgho$gs4F(Sqp*sd<5n zxs}RFVsd>&2O5wfcS3Fq2?I>zV|V_eTw8u~e!17EZ<$>9SpvN%RJ2O?x}CkAUQQc7 zO+NKsFy|W`kuCZUBvOxzO7lJ*Zn;4PCgI=yu7Bt6-y;&=hSANJ16{fgeS_5_j|GC4 zR7`SIPI$inp2OF-2=5EN^xH#Vl>zK9p(E~ZaRJiUm`gT{x(_@CS{kQUnK>@sk2O%K zGNCF#c=C+V_Zh*I@HAWWNc=+mH%MRm3Ksm*RHj(m1#QjLK=A8k_3$EI(gXT+f*OGU z0LM%dhV9eqOwMuc_zOwvHjO6u9kuUXPBK)NB)M^eQ2`M@)^PdQSpJUZ{hys zDkAkDb%rEcZ{^+wui!D7y(!>ip+Q8soiI$anJ-T9vBLga^Id}lZbc8`t-thmw|dO* znGZ#z2tm{8?vT4_9pU{Ogp*NkyXDDMGTV~MX}3qEfNT3l$ZAUTFM#D2v&HmHej!Vw z^YXSoJEUX%X|hZ!LF+@2==wlK-`)M_=S}nL_y+Q95Q(`14ISZa%*iec)o7uQk|Xz= zqi;~|s)B3wiNZ6hBUQcbiTEsZ7PX2N0ttiSa!`jx(9*e_u$qc_e2eY|=Wy@;1#gTg z3ku99(bZsW36RM)oW)YxkSUQV*8{3h4G>X-rNtf^U=e7(o#hzO2)G~ zsDC*AXNVbD=>x^7MfI-ewb2}1isMPC8HZi32-KCZpHP&|#rpz=4*hK=+=0bmpPgo& za#T?oQ<%TJ(d&uWTRqYUrih5Pk7^4K zOJ(5B+^IQGFF2K}kTE5>XVR{_EfbRB9`$4@)Rm%n?;V8wsm>>vnrJhdv^KKnrr@4S zZMMt}Lr|}wtS8>Ee;@aRPemR|!D$D_3$d3OcNv_{vCZe2!{U zcxrXuVT-lZ`m&3*y_j0qviN7%OgQPWx4~m-Q*6_@;El)ej6BL)n~(UWl2M@uTt~Y* zV95vRir@IeUA<>e9Sf zi>B6fp3fv<>#=ex&=yi!KT?xxO4x}(iZY+9#<<5)UT$)~Jm4nt2*6%KJ9#c{T-;-& zW5HMFGJohn!MY@|-D)u34|Y_-0e2<&f? zrnFb}aC>A^nqXPLVC-G!eQAFLgX0h+as>jf%LR0JiKDHiKPYC1mgiUXD5^MH z@IAa1wSdLD$36&&=O6z9Xg!5oufkSP*x|RhW`yZ3TzrK#_C~C_v6QVR(jTK7%cGTe>P)$S+KDVEe@(`Wko^=&~}LtX&o z&l#=Si*y43?0^qDeD=+tb)U4tGRy``dq1v^6P?#e)dmixVQL6XW{6ens4({}Wdw8k z-ak>~|CjKBN~BD6h)$Y%7)=ax{h30QCC0nn_NH;t{DX;s63FfRTcouvVm-Fg_A<(l3Ad&e8Re9Ln(DCKOohB!Dh3OF zKtdoEz~VEW{buG*9Y~AM&882NwY_7_fpt`6>A4r~GrjF?e8uH{6rJkxT_nT8ea$#M z-I^cs1J*2?X(b>5F9!I;S0aG%zOta}4_6eNf!r`!vk#+xG48BeQ=L&JjlIC?9)6`!B5 zIRh$T#VibgFwF_p)l_055LTX$w+s~sZB@uiXA?TNXQ{-I=V(Vr2YAB6J`m|aQH0Xq z?Jq!c%@1Q)DvD0F*9PZctTUR|808#6&Wu}IVXOc7KjKMPdlWfPIL%1+PBc__xIbYt zK_@b)&seaIm!+}Sp?MD!f*XK(?0*Ng-H6pN`MYVCbHAqGWQ~V880IJH}hU3BN>O7G69_u!I zL~oIAWRCP&cdvQ#@a~;w0~Qcl1)}U%(@Bro2mTU8I3_1W3{Wuy<$02Hd4Gt6=q+=} z$I4e$y_sA~kO56D=mfDifff@vU%%s6|FlShi_U;h2aEn8KQ)<-Ms75PtDMueR@kIC zOJ@W!Y`+_3f4-YEK(yQtvvwG`PhakMFVl0azhXt~pMxI2B$8H`lBnw zDD5;VwiM9mny>rNc-5NywGjphuzx!aM)u<~U_Efo=aP+w`_cC8g=bA;5y}1|sQ;ML;7Fw9BnMdV2QD+%t zt~*iK^}Wbjad5ygZw9zD=F}z8`Lhnkf|Xsg0Kw7gMUi7&`cAnfQI3UCjzB(AFq2JV zZ2_qOq&z-XpEn0FF~NF5pE1pLK*Fgh=}BLZG5&R@7gJoRG_1ohhE23{p;UAsV4mDO zap*Cp$#I@D)T^PtceN!wCPPN|z4hN8fq&OS{$FRUj4@?-;-&L4_HGkYGVYFU=w|SZ zL|}8$kPfSMk@@|Zir>^NS=>ZwJ$0OJ!-_)u^7X8AvTLy*<+S^xZ=L)tT?zpR;C6r# zexCkQi@iuu#a^SHB;B=3lMSD0C@oRh0v9?>Y~#C_s*p_oQ7r^6cWsvxwYQmV zXM2uDwpqWjWT$R;fI-88#EL$@?`!9M9#_N@Ta-8kRp<*trZVdACUYAZnEP zc&UW#wK^v-npJd5;=5XDK(k_axcQIL(3vC)=o9IT4r}1Vu@g3 zHYn?*pTnzj8jy;dDXXC1aHdU@bMQ+V1hDiE-h?OIG*}BGx~JOTS{Pq9LU3R$jPJg^ z*#W6~A`K!Tywo7-fU!}Tvc?}k>wX^lEZoa3BPSVKv4^+=TgyzZ-a~(g(5Uj(imSAb zz1^dqgB|GqUTv%HaCG&;*8MRpfE1+KSi|DwxGM$d49>>Mu|Pui@(ni~1?aX&0W5|J zR~G{;b5mJ*hU@qV*vz>V@Uw4SbaJicQxbv;Iz?q>nNaE31n_~ovl}xF@^ZqofteRkf@FW~*rl{#jq9^wl7#-o}s(c4_==T>; zUT#_D=}gw#8_>zuOu`n4G&s;mKFEP*Mwl+$C{7>O2e*DIO+l>%GnS8l8?dTWsEI~s_oUQ@n=*Z%8AX6NW zLPhuTAKkuxvTgo<>N#-wE3j?lMF6Swg39d?_ncyZM@Cd$t!_9{xT@xc7=YFgd66lo zDYx)jZ7|AfFrjJmF{vCE6~N3s8w5*D7e{3dBH37>SpB2875~%5kp#4>E1@q>ej7U5 zw&(4PN*MWx6X!b4rD!;|qf`1Q7!JQqe>FmM%jDGYG29GRj_9|{Q%@|})hP2o9cP8R zKl79L9d_R{ouz^d^8T~$*tg5kB?ANfW4f@hVJOKv$ZZWtw4}KEFMxU@jFE_acLcGY X*%aF4$keV|xh={47WrND*Zltj`O$x1 literal 0 HcmV?d00001 diff --git a/docs/lib2x-mz_square_walls.md b/docs/lib2x-mz_square_walls.md new file mode 100644 index 00000000..2e636e58 --- /dev/null +++ b/docs/lib2x-mz_square_walls.md @@ -0,0 +1,34 @@ +# mz_square_walls + +It's a helper for creating wall data from maze cells. You can transform wall points for creating different types of mazes. + +**Since:** 2.5 + +## Parameters + +- `cells` : Maze cells. +- `rows` : The rows of the maze. +- `columns` : The columns of the maze. +- `cell_width` : The width of a cell. +- `left_border` : Default to `true`. Create the leftmost border of the maze. +- `bottom_border` : Default to `true`. Create the bottommost border of the maze. + +## Examples + + use ; + use ; + use ; + + rows = 10; + columns = 10; + cell_width = 5; + wall_thickness = 2; + + cells = mz_square_cells(rows, columns); + walls = mz_square_walls(cells, rows, columns, cell_width); + + for(wall = walls) { + polyline2d(wall, wall_thickness, joinStyle = "JOIN_MITER"); + } + +![mz_square_walls](images/lib2x-mz_square_walls-1.JPG) \ No newline at end of file diff --git a/src/maze/mz_square_walls.scad b/src/maze/mz_square_walls.scad index 06b5d6a8..7643ad1c 100644 --- a/src/maze/mz_square_walls.scad +++ b/src/maze/mz_square_walls.scad @@ -1,3 +1,13 @@ +/** +* mz_square_walls.scad +* +* @copyright Justin Lin, 2020 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-mz_square_walls.html +* +**/ + use <../util/dedup.scad>; use <_impl/_mz_square_walls_impl.scad>;