From 32bc0dd1388bb84df3c4aee20c8657122bdc7d8e Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Mon, 14 Dec 2020 13:38:02 +0800 Subject: [PATCH] add doc --- README.md | 2 +- docs/images/lib2x-polygon_hull-1.JPG | Bin 0 -> 25622 bytes docs/lib2x-polygon_hull.md | 23 +++++++++++++++++++++++ src/polygon_hull.scad | 10 ++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 docs/images/lib2x-polygon_hull-1.JPG create mode 100644 docs/lib2x-polygon_hull.md diff --git a/README.md b/README.md index ccef311b..8912a495 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp ### 2D Module -- polygon_hull +- [polygon_hull](https://openhome.cc/eGossip/OpenSCAD/lib2x-polygon_hull.html) ### 3D Module diff --git a/docs/images/lib2x-polygon_hull-1.JPG b/docs/images/lib2x-polygon_hull-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..c8c58255b10e27a8183c73a9d217d0bd888d16d9 GIT binary patch literal 25622 zcmeIa1ymhb+AdtUYk=TRfP)|0Ap{TZ?ht~z2MYuU?h+)pyGw9~;O@aafdmP5PtrZp zGyTm>&&+q%zt+EQpRAp;tEf}E-e=qMT0P7^tOJ-b64DX?6ciNT4*3T>Y+$a7yIYzA zfSeov0ssIJfQ8}*pdmE`$brloO8^#9hl13V-=+Wf2G9WjbLfEh=igBw$3l<-5FbGP zL;O+u^YbSHeTembMVd;i6%FG6@_AW5|kz{cF88Hs)s? zhLaNjVq<@+|Hdj1<9{IcC#(2>as2!#^PdR(iNK!-{E5Jy2>gZsm=(;*#|GwO;~-~a z zUQ=3OAv9zGcRqI;dmA%nBXV~eYg;EicR|XZcjtrDf1GBa6cTVWHRn@)Ch_YPkRw6L zU!TRz&5hZOo!QROf`yHjmzRYV%mM~8L9SqO^00L_a%Zx2qWbj)&&-@m94+mgE$wW{ zf85Z>*v`dSkkZA)(v;8K$eh#I)RdFS*ofVfiH*(Fh{?#5osG$qo!yk1lZ^*#&Sp&c zYxAZie{J2~#nJj_+omQgX4YmlX12~w5H#3WC|Q1a=>J=7LLmBUqyG?oh>VbH_{1E| zjGWD$L5k3iPGw>PGqG`~{-vXtIXSomSble%0Lu?B{^mjd?>_mzg_e+jsR^ISk7u`Y z{H1vnGl&0OZ(Cam{X(FBkq>hCO9gUc$f!d?LK0y4+cy6v2tUt21|8≥uNbUy}cS z@cFZm{|Mwi;rbJ<{|JHq=;A*|*Pn3xM+p2!7ymiB{(lD7Z#37;7Q$`aASCu-2@nGi z;NallU=iTq;1LlJ5RtJ^ARGf37XuR&3m=z|03R3sF%c;(1rZ4i$zyyKfIN{exRUXVBz2q5Rs5kAQ#kO0?<$}Fwn3taB#2?KP8k8*U;3`HZe6bw|HUs(#hGy)y>_*Gw^j#@SBj(u-Lfxgv6xel+^5;+`RmP z!lL5pn%cVhhQ_AmuI`@RzW#y1p~IN5pv=^S-JR ziHcqMGp@1Y1Tr2q#|F)pAENz~?B5eC;J=dWuY&z1*CK!l0|n_k7%V^-_|6wbR}LKz zMwbQsUl!B|jqdT68nRw+D?2HL*@&|jeTwB8)IrXM6GQO39Wg|<7Yw!UX6?G`(!FUx zD}%%hFzVAi)#3!t%x}D}LAh0m3L?_|MTdHFPOo4efEd@q`)!0>oTGwo z649_S_+V$jyt@7DqSQ3w*>kC=t$1crn?lpR&Aba6x9)b%_y$snsU&|hdQlI|J%Of` z7*n;baM|;BH3XV|LA40d;^uooETbOH09s zv@*H>61N(c6@wenUQ#-t88-*8j6Es{fQ=%O3%@CI^*)TQWLhXVo6*#Hob0mb4;x`QR;aVD~EgXOnbtf+fk%U5rswO z*SPp%?5FO=E=JVvmtA^1W|JBpgFmu8+kQ&I4L~h+Qw7HKYE7*-*H=Xn9k$nxq`3?lShN zlT*x2*1Z*cIa5&Sfhfr~NIc#O?wLoh>Raa{#x=x8EukmIl!gBGyOGS0TW;5pdB(ir zJ8z-(089n-k^pN>^#NzII#!J)8LOsj!#ITm)XJ=C{_6qgh@Ad+Z;D8?6ZlrFGpeidi)Vy@otbz@LY zxH%qqPAkSL zQJUetphWzzH_`slC5=IYdti}olqHthA2Z7q>-rMhNQNYK=%2n500T&o;=*8_fgx5@ zK1@33Z$G<9L%3{ttoS9_=SWK@X*;fga+VXNA$+D(2_n^Su50fiOkDCT)SEz9^o~ff zt74bD=ELm$I9bAHcg&|$(e%+3W=?!VrmsEF_Lpru>5?^LN=1n;iuXB5Jo0lIAe;htQ2N! z6R#6x<>Wb#@N&%W)w<}YgBXRr!}GT`pb?PUsys*YEQ5b<<>cdH0sFypHVt+|^*Fq8 zKzY9JxY4+20QI#Wf%MMqY^!X+n)Y6jdb7{U{rgt!mv~EwIEdWRjI-NsvkO5vR*kNp z($Cj#b-r^Yz=!7OSk9JFhuWq+ufa4;X|9bFAxfW5H1B8Zxy(YDRuU&irpxyGkIKM| zH)p{?gRJ*3O@09(>|3Q8U(f~)_R~Z%9~hEVo#60jZu&A$I+(QkmFZe^0Rxg2ZD&0l zg)jv=(%ez3Wt(Y?>lb=ch`p%-#mOH?mODK*cx`Q-M0$DD*~m-fg?3Yi+3ixqM|YJ?=i)xdpyJYg%H1Q|uFGs`8X!h@IvL z@g_5QlCu$d{I$gW%Z_DrZj>dL6bdmL#ob8w?h7^sTT674gs_bh_|>|S2f$3sHoEg7 zZE63*sD-V8@i23rZ^~!a!e_3uup9E@qjl0*`(*Qr+M*l}fK^)@w*G4T;+#_gR2~&A zK?jsmkYaJ88ld!fCh|RpRoPYcA`fTFYqJ{xCyyc{Be6+8ASpTggnCP|QUI*5ZL1`)TCR zV;w7-OpweiM{cZRCwwnC^!sfB!z*=IZPEn6cS)(i`4fXh2h0`1iL%tl#kk}VA*f0o z0-MZdJgRH8RulilDEcw#7`Ub8N?kJf7(4`8mh`eu`joT1BzU_9{N7n0pn^+<%ouYY z<%z)k;nFGO=N$j9M)JM?EHm|t zt;H-S=lIv6+(^1*678MGbmM)B2|?7vrR6e@qEbv47bIRJA1~>MT3F%M<+63!AtQbY zqehM?#7EAu2VekXFDND)C8>Y4_an2tSo9_wSuAVIwO`XEmkrG(LR~jxNr@ybRK%&5 z3FyGY-{B`}IkduFrLhrORZB6FF5598z6mSlnu8g(aP5e4T91aQ;>=UhT@v-MVyata z8?yuBZ-=R(#?s@1IzEdcz!DnDiklBx`B>a#q6aj42L?dT^fM=AJO-CJ*Ksk zK=W%-Xr+FuHMKKqKB;`dR@fDwUguOVMn=}ECQxk_aH?B=RPKlfJTA-*6Z!ot`~9)g zu1?01a>|pQ=+Zm~KV&}zh5I(^#g%RkOm|{ZUj4&wxP9z+#v{_kj?#jb6EdG=s-N}h z$&2ECzS2FYBWSlg6>m?yzJF7qfF-f=nW!d*lnN112;*h8^ z7*WvbuyTHgr|?|am$~q~Kwfnv7XrARgb`%>fw!&5nm-hJ-hg$jQQs1g_f-Zml6ZzC zwumiYK#rwC>ZrMaX?J-gS8iK#6pgctzJW?pN0+jg#84cFvixL8yFrLFX>2_uag$2& z>*6*}aNDICTyc_utpn6yn(x3;xu)QlPFUgq2AIF!w56RkOzWGI6hF64?0tXzQQ!L6 zr1mm9af_^NdDusHAwz~IYNEzXVmcd3@~e*$$~Pk!0!v<+YkrDuX7Kso9b}ACiSVA> zV%)i496djbuIL|5<FT}F?^ z6ze8SON_6BSBoy!`tS@@6%P3$_`CWX ztG;%xlO>1K(n!EBJAi~3gf)o{Q05hLFFLL2Y3qs=>T3zsYzMWJ4~|D`b8Dz8qfeXz z#E!U0PG%4il7p9hS~^-VT(J5S3#Qk3FQ1^FsJ^-iBx=aIA-z>-SSo(-Pe(GYj*?51 zTqCnRs_83g!&mvGv$ieda`e-?U{W+Gc*gr1Cyz(le{nKvfIIe9VO~+ z=Lh904gPZRHEcQ$uZ0J61k(g{I^j-s@;J2N(WefWkvkhPH z=UFm|5mDW^stqlmh2OzO_hB;nOL4C3pBYG-5FONCT+CSrnW|6KPE^q1yFQ~0Cu?SP z-z_4n#C!2`InqoGj_^*Je3?p`0@g4J4?tLsMwDh;I*USbeXPpK3R_5yo<)(a zH1!LieWKjqH{k`+;y8fP-{~fQ(NX^SHv=UT;~pW$xV!NrFPXc$jqPckluFioM7;t% zbW{SCYq%lQyV*ALgD<{TnyY&ko|*IITS3oaMb_E_=#lge1CZHJ$R+n63W^vMGxWf5wpfzi}5kAlSmQqktOUOLZfx;DaUZQHt` z5eI0b_J&3ZKt1@`HmX+a)DsIIk_QM0VkNX<8cB7YAXnauwz3{Pwjc_DI{?*Z7HJ;L zvaRlGK$P&<-QmXi1k;GmQaonV#F&!PYN@}@G|kkYorb(MX=j_VZzN;^UzQ{e-K?|F zMjr1xCXQXw7&a^k!mfh$2kbg2OqaS?;h#E}40|0)J8duP$W%*QQ4@n> z(GjT*7?Nt*GX~F5yxS(4RIb$CRMt$_Axt~-2WB5S`k80YDFw}|5vjXST^6$fyjsw~ z$a@4e7w(LU!3--&EzB!-7~pbJ)o_o_SWHK;U(t*SUzFRlzI zVD-`?_g<4xWwVnk!33FO{oQg>Ve)?DCzAqm8lY>xbd&W(jkR1XeL)$eQlr`1)gSxZ zw7I&OIIgOj*}elFx$7b$X=1)FwXC;obbc&_sTK{@X0Q({eP9#jlsLnEk8$GpUvw)t z8!?5t8Eey;4{t|;pJT(|nvn;TmLh_NI#>-wm7!oU(TqL#PT%lU%SK`Cue?v(z&l%Z zMk3--OL=t)Zf;!cY0V3Wj4eFmDg@PBD0Pt?Lr+GU>8LusIm^EoEr4WCq(C1x8#r^r;V06Jd7CjQvky)}zq1mR9wz zxh9NRYIW;PQ$A{KNBf_%bq`Z*0!Sp4FqoE!zVn|C_-5Oj>_}E-Xh3!*QX$Ju*E~=yN@w2#I9THXbzQQrK&Na zwOA#yFc~-1rb6s2qSVSg8xT9ouX>L1oUqeIQhjscWmiKCq`x3rFU8BB{RNiA1od7E z^YO8hvUyOtouoynHwb3)D1{1F;6p^C`q9;(`85h zWl;Y+-#9LE>S!Q-^AyvBlk)7kU^+kMqvLS@nCOzGB@!%>7S(!BpYqJzG|hU>kx_w< znl)0#%T?6x037tN;$qfffbo9W`@GQSow@lLHd?>6SkQ9+DO;zBAF$G}v(#2P1>rUH zP!cDdqh)g!&#U$?lhCWvg8U7^2{P zGw@uFdq^NRAwi6d>8uDU8T#pMSp>ehjyoCO$Q%nM>eK?O`)pekP( zcV2EKEUH4|Pu4w~vC&qmYpr!(?q}pqJbskphXf43d!RW5|cWc#t(aq#Q3 zDWl0zH`aX!e0e=P8Go+G<=yo7WT3T?$e*Dt4A-PN!k|Z6!hb8>N~xhrs{z+z?WG@E zqPYMlV5lVx#wmN(sgTPB?dhCMRqWY!0}%daBxJ4RSm@$H*cx`s_aZc*0JIct+I!1O z1@=R}Egcu$%UmTqRL0}sZ3S>ZluLz-@ zh9xi%>WOKU)--u?OK-)r7JO3rX^KLO`nzk11Eo$+F<&qD=!L1;K^h_JPeTy+0q7F; z$-2MnV&B2)zu^4VjiO5`?0Q48z6gCRJ|e1G7$Iw?8NKRWqbTLV1Ui?QVk9Mc6TC;8 z;^0{A5z-Qq;wo894-OY&FHR)YEgV4)lyAMCm^@~AHR@n>k*sW2vm#lo*+9py=NlAk zFKLYC)V%blWC)3xP7&;B&rnj%{3Xypen?b>0aNsF)O!w7ewqsX^vvM1{4(L?5_xtQ z!>6(5zgh2o*%>F^s$y$Pn-z;B&BjqlGCBcE6OCr%pF091Fm$J05i#WoVZ|;fNEtW0 zQJYTWF;Xlc^lA3VqPxk#@Az7b8?j!r-7rb(P7)JbROpCd@O7bNuadV-8)vcPRGg!A zc9%q#!~AZA;2>U|DY!M(I_$Ics|>@Ng5~eN841;;1Y-1XQUm1QDoVPI_dex}O0S(u zX7V}aA5%a$#{v6a%_BQsqppfhOIx4cS`MOc#UX7CR72gzuiwqmcR>ZK##|B)D6=d6 zqzQ47Q9oz`b1B&mn!vZX384wZk+1fNOuFAh(@HBCG8pV%G^aOr`aDjo z9C#DBFd@%JY`CSC3L)9LYqt@6r}=T&s}DdcOL>g%X&mwM)#Kg%TX?dJ(=aAZol^`2 zyR2bix5zKPrRiB1WXbue=U7@fO!zM7IgYW2oj}M}5-Yhh^C;Yk3&G=3@(4m-CYoT} zt`bn+NWPFN{8Lr3B#MN1AwMhKsT>On(!(Ih_KF-mBL$=b3PpDc$aq@KF)6+0Po~a=9hLt!t1QJcQijN zH2=AI>4#yUtWZ;|XnxSr@e&Cqd3kmYEK1&q5K3icG*v}F?96E%28<@|9LnC01xuB4 zB9dV$xC7vv^!Fs2;y?-Ui5WmaevH%>7E4 z%FnoM6q`DFSy?&Dp3e67CSK|@BpvaYMV;0jCMq+%E{z}>6qxUMjynVrnh`P=liFew zv@xHDm{W{Rzo6B9NCJ;k-ZmI(nlh_C>8Fq$=6Mb-T8V}t(kfhf!R<*hE!ORZm7n}k z;EwA!*Ezx|eCfmHR*=eliDmeani8H?2!bfYdIMF>*Gt6z4iq5$6}s`|5vR0w8S_Tf zyZqG;t-jiuhnrWyc?T+QOxM;P08~#+&Xalwpx&L!f2)Fvnt9n3YUPc-%P>`Vhn*)y zzFwp3J9<dfqcAih^>6wK#-M*84^K6uvshTryfMSM9VZRK$ezUoDdv2f>Fs5?J z#^+HnL+YbTrQNY#SXg#K+5C3Izq{NaMtN?kPbv0?ZiE8SjY<_T4<3sRPdHn8r<*7R ztJv`>s!u$6+13ebR8Q~-X(lC}n0Z&Hxx55E?q&5zwH#wPWkdaI7^a@r*jP~H7C@{t zaxp=2aS4`==wv}vq}QlYPMTVq<0be#BbFOmBpfwr?#m@fl*SXs_vtmpESBGW$`edT z(!=$2*|z*NYuKn0&5fna&1v3Z%VJAY$G#l>)ihVkR~`YOwk3AOi;|8pjfs@q5NeA_ z9q|T2ZS4=l(6hqY!~t;|8@TjR_1WltxK=umLW*iR*EZIH%@tIQckWZ}NOx$yZAXjSkQ(E+voqc$0cq82`+xbj*RYdZnh z^4@Pi%M)j15G~SNUenXk(bpMuv#2@d`Z82TP1L918JIAzWl>nd`AA1(PHDN8EiGgs zM_LB$pj5Rwa2i@kn&cu%RI5tP?fr`>xeEQkq7Yr!#3}ih{1;bhYs5OkA3V&()pjXx zkbyXZ==_vg6Ko!p%(3qpEIOXsTN)lyMnfugaaJ=Y~hV!xls;52(DQcmT*{qi&F2l6}|V zbm5D1HsHF{zRmo${8n50ajlQt^Dpoj4U0@)x$8%xGM;>#@^h^`C<_1=z*@v;l)Rhr zrcPWXour60sD62Yhq*{1F~E`xO^)i<96cZ}Kda0h++m2AdGm5p;#xpus~6ZWk$_b% z5X9}~=a8E=jeWCy-M}MKAOnt5O}}k^06K4P{iX9xiQ<*So$#bl&z1&A5loGiN$c88 zDkRw!-0_|qZJuQK%IwmW-#!ugfUS}L^>}6_C?$(wXRH}OTf>^75kzb6d;?Q!Dw-S7d6YMvOMn$ye6;fAuSd0XwbYPmV<~xt{icoA#uIr*PvmT->xcEr*ExL~ccZ z`|Ki(oyO~%=W5a(?cHL_*=2G+=uOD@-#uKZ@Nrrj+2t$hH*Dy>bxh=xYh=gyJMQ-E ziPn7pY$NT9<&t<}AK3J+-wg*_b+XsOTSyKNdW=HgP32hM)z#t6#^jpC#?I2YKTiYLhpf&iU6@^?W0 zO~?J`=W{X)o~%kcv>4;{IlM!ijE`5bw$d<(Xo{9|VJwL*-wyT}6^B?0baS_9X{RqI zt1Ex+hr)ex=l5OVQ~+dDP1bKjZdX0Pw}C?}(zClGB016<^O3DdT-Som`biwPwC={k z?vcVY!aOI}0A6)0Y!7N2N;K>cu#&JXN)$jAFS>zo4Xx`tuL2>HlM5y47ei}`HC|Q& zw*#33P+`%c1BTrRh9VUHu$YMCVSS&UGuUl3QG_>1ePj5lLLGi2(wgizB5iUaP1|O> zOoF$WUvlO<(~j-3Grb4FW&3A0{VhPC?Zg5H(;=+4&oJ1kHa~woRNX7HR4bCu{koEz zhf8Dba-p5xc2FpRLQmY+pV>W^r&|u~_1=;!Ef$|F$+B~7uFkdDG>SRKf;wDl71rEj zIe~!l;#%EAK-;0PPR}btoiZ%{teF_$P)mUb1mRUc>)$I+N3{`si?=<)xPbDE^o zE?}K3VQ?_D7qQ7T;aa(gL9|dotp!`wkNt4&ZTeUe{G2OfwU-)tbVl`o1_%yQ@BXjgV8C&!{Q$(~KwPy; zWOvvJU+cW5zF6JML{>Zi*1lh5G`MKj_4DH|c~7sT>e|1fz9hTCc>p%G4L(;2$UOj} z!na8fEhn_xG3?CjX?#Q2P0Z9NO$|TKJ>6j_HkFtO706F7+q$8t8!9skH;1e@35z^U zQaze(dDyA;(XxN-x|iu(`h=z|RB+;FdbQL8&%E|tJ*F%b7ZVTS))UQ(=14DW3HOUK z2H%hj;#9a;*(Rp>UA94(M18Mg*jII%9O~FZm8Vt}DKA^cTr-l4#GUaxFi< zSGvtaApTayptGd27hccJy4*)(>28V+^>yHMpdy2=lqRn87VJB>tlT41_?;{4`eaI} zZR+wa;Ox`VEADG>wQc|N_4Dc3h=Oo$F|+o;8C#-P?7LVj3Ub%|`ZHsU8QE8+?G>$c zA$m$D&Ki;0w~}9QTl01rgZE`NO~(si*0vU%t}e?M48j(}WaKU~tvI~gHDx74zYQ|= z>$7RfGW0N&-uvz-SHOEl;O^Ex0C?n<(|VR*$;bSuyxopTcpt>+#gB%+Dv28_{$=rrJS2SVR41uy1%I$z zZqBGMB((PxSLnUFxf71fP1SVNCr+8>qOPH%P>ADYYTVg;*6udDmm=IYq2qXu-}L4? znan|fyqfuYxDxjGc(sL+4JKGUspf>)XAZ(AaWPGAzF3TtO?x>lt0>{|%up#7<{(3C zxL*r2mN!@@x>dHKMlS`56NtB6ag@Ye2!j5b;H2OG=66GRa^_s2x8fSa*M0|CZ6@e- z=QI61Q&pBXUu1`!k9Pg5*uGld4a(UEV2`cPcU=YIs1_$UFjG?_5c&rfSQ$ z1Q`?}XQ^837_Wd9(t_Iy=$cmctaQqiyr$0PWV8;$Ym=L-2S8{U<9Yhx_uCq{BZ}iE zZM#=gqZJzI3)YYh@j_tz%P{%herv>CU2ZTJd{V$sD7DlM%DPcs0~19LZXb&)1-x&t zuoQ$BJe;K~e1|iWJY{9F>-7Kxd|;{x)nBo$SV)6oI$_mVzV??83a&c6C%o#G_cw1G zFDKEe_qSDd{fKl^6)Un?&UQUFjib(jhQ56x;T_?dbx5d-B22QJP!dRem^MJ-USG`WaNAyZ*?l@vHA)-|c!x(Izrw z8I0ENm@k=8CnVG-4HzB03)HsH0Awwk-6SQ|+$)WB=~XW}Ygi3gOmnPNDbr8`dyPfS zZ=iW0Qd1NvdR+uMdkK#|FJezeD1`7p{RrRB2EBNe7zs2% z(=|g?l+Vthkp>x$w>K~WY1%1(9aklz9r5->Uf7-?90FxGrcoXswf`jl{XK7LFM2cL-}X)G_=w365PG>kyYuKYn5otB4u<9%WZo{4Bj!$ z(YLY(XO8!E;#2K>ReQLzSHfcF1TOq}65$pDDq|xUtGBEow>QX}&Vr9MBlprYY3DfR zk!veC_8O$v{X#U02M|wAN};P5w}L9vC%)ORYgC;(TP5cQK^7Wsrsv)y*9fK0NQnAn+~&D)2lGLihQ1*#)F?r1gQRfq4vHySbuGJYe_ti zI!{`&lib!CBSFGZ^K%xq6c7z%9u~H^gEFjH{xgg#S{kQ{$23N2z>F#Ykr!6A_J76o z{&xPUS$@6Id3&g{VEh0`*RE0|XqEt*s09c+DnT^z5^6*QYLufmP-(a;-!d;=FP>X| z*3{Y2tiU!`Sn(ctUfhj!q>I)$&xK+nwAb>_Lp(s*JvCL6oS8?XI`X`=b*Ww@YC!^x zxruTIQ+MM!6x$U3i=UJq04}9K=#vDz9Fh{DDgj5m=R0CJRF~?T0OI&MJ5;1rlR2Y( z)@z;V9|1u*xZ$6z*!B9osI-^K&za1IgQ5))B0{gB6vdt($KnQ0wKnCw3@u))EwS== z@uewJ(~fD8RuaI5f29G#vl{?>D}xL5 zI!mW_*O``~@0X_Vm)ZsI*iM&-6tCDm9SXA?jW50=I&V3e1FZY_uG2hs>pfj7vI`5{ zJ*~@Kz1w|1&-D>Hqj2^G*&mG7qBz#n+bgVu$0Cq8M18DsA;D0eIDR!%vY(WQcfGW; zqSGq!e89C$_WMbB2rx=gY`$)=;C&At0$1t1`){pC=7(9JDL7X0X{rk<{+Gej^ z$Dz)mQvCWZPWlfYfZ1ZtiZ@K0{CVxc(j3R?99WV?3#G;zCWBAFdRltu((@ZhJcclE zMit_2T_7x_$WZ+Hr54`yD=C&*vK9Ac)Gprpg{lT4tH80-M_#Q&A~qivLO{V_dYiYC zN)RUk74{3?w$Ca$`-iulrtk0j$%#L4sJwNh73QNS<7bzovY~wK9RKe{OHBTVP=Z8^ zCo>+KHMOMjFl~rYR}XC{bHdOhX8?d{oOs>Hh}z31dMhZOBL06&n6i|cRZ8^o4Lt6kcV=yaof}saMPU1 ztTZmF_wkz5cH+uLg5ajI5@#120v)T@bNz^qLjwl-ZMPz%UG_Ncgdje?$d7$2%=l*_ zj1V86EIS)@4Lf#kC`~AJtTYE?A^bOEqjbMtCA!XSjn6%gK2T~NTIW5(n@9=xXtv}h zC831JoutgR9mr%O=NLUm>~0aO5+r^Yd3*%#AuKxWr)5#FxPR|a_tr#rWNKvlEl1?a zFt&6Dl*nFjaSn186lXDZtWDl{4Mcf^FxP(^9hx0hR_N1m1V&>x`gB}bRrhg|(9};e zXuA^Zy6uJ)F`V83T{qosJwqgs`TR!h^{g`I@)Wc2buy^8E|_}tgC+T+TJmKfmyZeJ zHjg^3aFoX&!QTGbmQNwU-T|YvaDxZ-z*p#>k=0qyB`@(X4_v|8x@}$JPq;bjMxv!y zML$U`XgVKBNRpswL42@g8IaJW`>_Ci*$C|?J=~9z8c9BCJ7??#~K;DCulR>RDGc@(4R?GvsYY zDGdoU;w)QlB&_;V;}+>r$R6}M@$lKTw}qXZk!>rQF}+`n$+$<_zzc#(c_K&D;!v$* z=y4)Xw|U>{W8rF{u?q|uq2UX?4;l%z)(Z_0Ee_!h;l`yuA`kYD%JZfL*xhLIx|>pU zkj$QZ+z%Z@&1HKXtDE%JR9)J*ACbL+AjmZL%F^=#jlg!$uX7 zWk}^ITQ6KB+rwt+3(v4M%pGyyXdMX5&5`{BSY!phEOkweEGhX^OA7$NR;)YVC?~B- z1yScCI+AZ^9oD<}W!5t@S0ssi&X#ZUn|7bn>ePVZ94<{-mTvEaH=1L$Iw?$CTpJs` zgOr`NpSUYUviqT!@Cpu~ymeNRXH!xae~OG%4RID1R{oQT2mKc=WgxpPMhZnC%Z@Fg zrUpQqM>uq_Rpfv)bau^TR?YM`ly8>QjqT1BmQq66*>IZUn-ox}Hy+oy5T1-xctmqQ zx8mfL??GnTmSBU{b$`CKf)x)fB)1S}340O|zhwvFDDs04r(aTJirK9291qzoMYm)J z6s1fOABRh|n&p^7nW8j_;m}%|p#_MPOatnY!P!$Allgj-9<&X7L5KVUtk3!mRKQ<} z8H1+1pau_I4!K2>K2GJ?9gQ80=&!KEG}zuXU}JFOlO3|{SP-9nR8a2Nx#isyl)BQ9 znH4awv_s3!F+-a?AoP@)cxEcHB}ag2sD^f5S@Q%d1rqz8(f2Pnqo-@8RqnoPs%_@u zI7dK&{{fT*EmzH!*v$3NXJ*p9P63wTj zB%71!O-l|#+4Z)khw7g(-h3l@YQT4L{=7cJgDYtD6uSnJ`!PuC$EM>Fv%$Z|sQ|av zaFM7qud`zLSq?W>bHTQZurk6P=nC}r<8#KX5L<=};QyH;!eI__&=}RNz}f0 z0M@uKCZcW*k2S|`ux%8sZ76mjo#=dLJ5$b4(s-iG%_f7hu@MbCccj0L>61|MGaC07 z`NQ~d+_9^hd+CNy-=jy62-R%uX5_KCukFWUXa}AO>03S@CUxw%ZBJP|aaY2_H+lQS zosA0cHC}I5Ti#Q8zP|(u&UDl^m?Ib5J$c4M*Epc)#kN^M;pm8@Y|~FDPS}rKObI}u zk8sfakb5iJZ8#@~H3OsyVny0*k&Cx8u(IDjH(3Q2fwrHHdNVcH6f|yPVfJ z<9iqp)zTSXpjFnY|<4YAs5`Z{uqXxPvPg-Tk})$v0qCLM-O8LwfK_y52jZR!7a%tQ-| z@t$NNpIzFcxYKsM3!9y(OROK&so6M_ZGdP&1V855#}mTxEGG|U8A4u%#gV&U_f0gy zn%b&E#eWZgB0(%(e6AhNrOaF*;IvFs5-b^Ri1_@Yk$zx8cy^|}hoH1iUf#Evys^a! zruRnL85k)4w{)SSfAfDm1@4fIyrQKiW1-?|plL!Qu zYRd3$JcEN}R{uQDQLWa8NMW3#XR6jp>gZ_GgM>W92ou8dC+2O9MTpV;0HDC0<*y6s zuWlv=ZvFcyAEx74;T8QAbDS1_nT2hI)1ij7rASPerux7-S-yQG5!~88V2zMymS0F( z>A#mX+lKRVsgQ*%6(86eek>L6RX815ReJ)XTacxK7Oe?h?OEvv)IMFg-96S}8O&t{ z>Wu)`W_c(*=0dDzt94Ax(-m|a9APd+_7s?9^w_Y0$yQ0rB0bL66N3dWtKKKdfxqND zMj;i!2EvE-9O1t*HVwt%gCjiuX#_pQVg`U;7⁢F;ht!$H+iTI0@6?n4$-W$6CS* zZmAkVr0#O-s%8%ltKA*)kgEMQe&78})3%@~oIeG6| z4|ja3hv7F2ehX;UOprB@PN)<()p$Su)HprK44k3;}# zip}>(Rp3}f^4iuUO{0c5ExGG1k3anjsJJ^u|*@K*Af5L)x$t}v})<5p&irQ zI?ZG%t~y0kFX<8oD%xg67BQATWvvbmULh>8&@Wu*EsRi5O#JS?IFpVyg#TtaoSbni zCVhK2GS9Wt9XJ_=*3lF?UKuTG!;rL-Z07WJg zca|>Jt;7!4$R-510yIPGug-)V6=Ow=A&IlPMe2q>()fPFTKz1zX<5U&mXi$^78m9$ zwn+m^4X>6$5z@jjz9pZtN4o9O7EKoO{ma=4Nmj-A*Lh4o+1#)8W8^=Ka2Y(WTSIs9 zydg_NHuAkMznL_FBc_)qutc|On-G5p zyD~Qr5zs9jCwY0@=R*CMlPmN966LjM$KF#$54G+H9hA*XJWPJaN96JcfgW>KWJA-cQzj%{!c5SfGet0|D zZN7Zl?nSV6(`qqt&8=?t+85&Mn0x>>m?6%_vB90YINy1J_B4xyOW%%$le?Xx-OE>M z&haXH5C_-a=JVzF_z1Smq3cGpeZy?b z>dv=PKceKIO-r%i4vGc`g_7~X^B5Mu#pGB=?3v8mO5UXvi<#LOIlTIW*W7Z$x;i@! zk4$7ZXl_njjIL#zX1gO2@ua{9-rowA&?nx`#n*X4TRWdpy1@Rd$s7imwOVR4K%NLH zImptPi3*asKB;vNNnK}OURjR+k-Dxx07+dh^h*SVyp3z%=!p9x-k?!Jr8choecy$M zD3p;?Gn!gMsRqX$iQ-8(t5)2OQC*YXiBe4DhIYSxOT(HdtKhm6tRZ@~`|YqOM`e$^HD zhr$=vzqjH%4o|$8nQlI zuW1d0eQuk_&LY}1peI>LoRP2PLeH^wbj68p%WT%vqu^p@evCZ~u_xiQNR%Z~q=DW` zSs>VM{t;VuhLQP4r1tl8=+|R-$q-JhBb!%)xus5r8X<>9uzvB&z};3dc}R41lJzAr z_$X}FxeSE%WF|W(H&sh_*ujYnUMCb0Xo&_sLbAtjRU!FfYS4*61uFt$rH3&#)4QuN z&oo(U8d&0k?4?juDWU_G-uZkA#n)>#gsf)d5CfOwX)W36m4tT}&wbyAMu>r{|76Vs zV&Kv%YzhG-U=`UMy2*SY$24vR!(bWRoijxV~qkTSFIabdaL$2o7_(Zgl;DEU(k z^}U9~%_0w6JrMRB6a*;_Yzm*NLbqw_!(zqi{ESLjnie_dr0^p^6A28n4dbWD_0qR zXw#?Ta`5x*2xWzkcO$5UCnZf@EB5} zA3L)tGrTd+b7|CGL|AIaUp|@Vr_zlW3k>&z;iu$EaC(IcQOZk`QjafBSzax97-0#! zt|Hp%lgC6ZwdT1AYE{M6DXHYX|4qe(FfveN99|Au{M(W-;!F60jhIb*=tu0y8d=*W zbOp<#3M!t3`+TZ|obidXWmLII8jqh1i1O#B>=<|x>m0I2sJ5&!@I literal 0 HcmV?d00001 diff --git a/docs/lib2x-polygon_hull.md b/docs/lib2x-polygon_hull.md new file mode 100644 index 00000000..40628105 --- /dev/null +++ b/docs/lib2x-polygon_hull.md @@ -0,0 +1,23 @@ +# polyhedron_hull + +Create a convex polygon by hulling a list of points. It avoids using `hull` and small 2D primitives to create the polygon. + +**Since:** 2.5 + +## Parameters + +- `points` : A list of 2D points. + +## Examples + + use ; + + polygon_hull([ + [1, 1], + [1, 0], + [0, 1], + [-2, 1], + [-1, -1] + ]); + +![polygon_hull](images/lib2x-polygon_hull-1.JPG) \ No newline at end of file diff --git a/src/polygon_hull.scad b/src/polygon_hull.scad index 4b20d9a9..0db4efa9 100644 --- a/src/polygon_hull.scad +++ b/src/polygon_hull.scad @@ -1,3 +1,13 @@ +/** +* polygon_hull.scad +* +* @copyright Justin Lin, 2020 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-polygon_hull.html +* +**/ + use <__comm__/_convex_hull2.scad>; module polygon_hull(points) {