From 93a6d2fd77327d5abb1ee4a8324e5d0f79f29927 Mon Sep 17 00:00:00 2001 From: "Maxime Chupin (escudo)" Date: Tue, 29 Nov 2016 17:45:11 +0100 Subject: [PATCH] Fonctions (TikZ et MP) inc pour Voronoi --- archives/luamesh-v0-1.zip | Bin 131680 -> 133034 bytes luamesh.lua | 22 ++++++++++++++++++++++ luamesh.sty | 20 +++++++++++++++++--- test/delaunay.pdf | Bin 52831 -> 55393 bytes test/delaunay.tex | 6 ++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/archives/luamesh-v0-1.zip b/archives/luamesh-v0-1.zip index fb95e489e580092e06ebfbf7c2b31aeef2a646d8..ac51292065ea2e03a040d6090a386fcc703a0659 100644 GIT binary patch delta 9647 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 Uhix1iE>so<1_QzF;kk(Z5B9?ZKL7v# delta 8297 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 R;Xu<6VK5LLUp_3<{{Zd{z)S!D diff --git a/luamesh.lua b/luamesh.lua index af3da31..179024d 100644 --- a/luamesh.lua +++ b/luamesh.lua @@ -471,6 +471,28 @@ function buildVoronoiTikZBW(chaine,mode,points,bbox,scale,tri,color,colorBbox,co end +-- buildVoronoi with MP +function buildVoronoiMPBWinc(chaine,beginning, ending,mode,points,bbox,scale,tri) + listPoints = buildList(chaine, mode) + triangulation = BowyerWatson(listPoints,bbox) + listVoronoi = buildVoronoi(listPoints, triangulation) + output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri) + output = "\\leavevmode\\begin{mplibcode}u:="..scale..";"..beginning .. output .. ending .. "\\end{mplibcode}" + tex.sprint(output) +end + + +-- buildVoronoi with TikZ +function buildVoronoiTikZBWinc(chaine,beginning, ending,mode,points,bbox,scale,tri,color,colorBbox,colorVoronoi) + listPoints = buildList(chaine, mode) + triangulation = BowyerWatson(listPoints,bbox) + listVoronoi = buildVoronoi(listPoints, triangulation) + output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi) + output = "\\noindent\\begin{tikzpicture}[x=" .. scale .. ",y=" .. scale .."]" ..beginning.. output..ending .."\\end{tikzpicture}" + tex.sprint(output) +end + + -- trace a triangulation with TikZ function traceMeshTikZ(listPoints, triangulation,points,color,colorBbox) diff --git a/luamesh.sty b/luamesh.sty index 7d13961..14bc1b1 100644 --- a/luamesh.sty +++ b/luamesh.sty @@ -177,6 +177,8 @@ }% %% the name of the point \define@key{buildVoronoiInc}{meshpoint}[P]{\def\luameshval@bvi@meshpoint{#1}}% +%% the name of the circum point +\define@key{buildVoronoiInc}{circumpoint}[P]{\def\luameshval@bvi@circumpoint{#1}}% %% the mode for reading the points \define@choicekey*{buildVoronoiInc}{mode}[\val\nr]{int, ext}{% \ifcase\nr\relax% @@ -185,12 +187,22 @@ \def\luameshval@bvi@mode{ext}% \fi% }% +%% the mode for reading the points +\define@choicekey*{buildVoronoiInc}{delaunay}[\val\nr]{none, show}{% + \ifcase\nr\relax% + \def\luameshval@bvi@delaunay{none}% + \or% + \def\luameshval@bvi@delaunay{show}% + \fi% +}% %% the name of the color of drawing \define@key{buildVoronoiInc}{color}[black]{\def\luameshval@bvi@color{#1}}% +%% the name of the color of drawing Voronoi +\define@key{buildVoronoiInc}{colorVoronoi}[red]{\def\luameshval@bvi@colorvoronoi{#1}}% %% the name of the color of drawing the bbox \define@key{buildVoronoiInc}{colorBbox}[black]{\def\luameshval@bvi@colorbbox{#1}}% % -\presetkeys{buildVoronoiInc}{tikz=false,bbox=none,scale, meshpoint,mode=int,print=none,color,colorBbox}{}% +\presetkeys{buildVoronoiInc}{tikz=false,bbox=none,scale, meshpoint,circumpoint,mode=int,print=none,color,colorVoronoi,colorBbox,delaunay=none}{}% % \newcommand*{\buildVoronoiBWinc}[4][]{% % #1 : optionnal arguments @@ -200,15 +212,17 @@ % #4 : the code to place after the generated one \setkeys{buildVoronoiInc}{#1} % \def\MeshPoint{\luameshval@bvi@meshpoint}% + \def\CircumPoint{\luameshval@bvi@circumpoint}% \ifKV@buildVoronoiInc@tikz% if we are using tikz \directlua{% - buildVoronoiTikZBWinc("#2","\luaescapestring{\unexpanded{#3}}","\luaescapestring{\unexpanded{#4}}","\luameshval@bvi@mode","\luameshval@bvi@print","\luameshval@bvi@bbox","\luameshval@bvi@scale","\luameshval@bvi@color","\luameshval@bvi@colorbbox")% + buildVoronoiTikZBWinc("#2","\luaescapestring{\unexpanded{#3}}","\luaescapestring{\unexpanded{#4}}","\luameshval@bvi@mode","\luameshval@bvi@print","\luameshval@bvi@bbox","\luameshval@bvi@scale","\luameshval@bvi@delaunay","\luameshval@bvi@color","\luameshval@bvi@colorbbox","\luameshval@bvi@colorvoronoi")% }% \else % we are using MP \mplibcolor{\luameshmpcolor}{\luameshval@bvi@color}% \mplibcolor{\luameshmpcolorBbox}{\luameshval@bvi@colorbbox}% + \mplibcolor{\luameshmpcolorVoronoi}{\luameshval@bvi@colorvoronoi}% \directlua{% - buildVoronoiMPBWinc("#2","\luaescapestring{\unexpanded{#3}}","\luaescapestring{\unexpanded{#4}}","\luameshval@bvi@mode","\luameshval@bvi@print","\luameshval@bvi@bbox","\luameshval@bvi@scale")% + buildVoronoiMPBWinc("#2","\luaescapestring{\unexpanded{#3}}","\luaescapestring{\unexpanded{#4}}","\luameshval@bvi@mode","\luameshval@bvi@print","\luameshval@bvi@bbox","\luameshval@bvi@scale","\luameshval@bvi@delaunay")% }% % \fi% diff --git a/test/delaunay.pdf b/test/delaunay.pdf index a20e09e8dba9aeb46396b230b030505c39753c78..666c3cc67c143d8d2540bec666ba34094b6c8f92 100644 GIT binary patch delta 4120 zcmai%Ra6v=x5Y`Nk&c0(TY-U@p+OixQM!j1x>GtG>CQn0q(gxZsi9jy>5vi-6cCW1 zyQHq)z3cv8|8M)@taTpFUca;VaxVUAEq*PFDucKLyC}PdwKIvVtcbduyMvD-yBHWE zfhywSMVbyJb2rm<%o!azvZep(G9xs`C;Dmy4n>7fTQc=G;9QFxE(-zC!|J^7(P|bz zDC1bTq2G*4m*t_`Xqx&8+LptsQm$Udn}_Rq@9g{_M}7Hv;@~mz=p-hG)~xh?Uh8td z`*3q0X9cS8$4l=WfGZ@2;=yq1YI}=(XlKZl( zI$7zh&Vn2aMKyeFrS!K+fEA?bMekEjsHjbgk!sZCM*)Gy%{ncNSs7t2YmW^tOF^uy zR8uBB;e3^E{A+p5ZINoB@+)~EzI)uqf8z- zqy%CL(uRr%CMUQdUGz2Pb>X^Ia_ zx}}|$VZ_R@GR9K9(qFL5ez7fN#Hm9_9p~9vqtN?K?CXT`PLY87>Mm4B$*iQhPZa*WgU1c!uZv!Q~ky@D1`p`OuIHqbK~c>-p4R9DITP$exg^v zd2vZ>@S{*F&`8WcWUpwFWd3S+y{*YZ!I5Ow9e zt+FMdz*ufgobN0n040^U`s5@)>kGYYUZLggrLOBR4Cu)>rt@P;!y`Jxq)5#!y8A}3 z^nPdA;&sRE-Ubw}cX!}y;Dg<=(QVq>?x?a@@s)Q00vG zA~}s073Ezz_{b^MNc~Xj_ziyz zWUGgRIE#s#(EO7P{dr4tBxcvn+`k}lrfsY6#U_0li*kmBpn;aI0stU;#&n6-n(%#{ ziI@;EX+zI!34_6}Fv6j!0=oCaklJ>^wk4bFLWje&hwW$Y*Q6x3kSCe0H z0QASbXx|M}3e9GUhw>Ru%dJSlB=X~^ekdJ{lR42VGVu|<%Vo`o7hVC01e?KLBJMHL zq9yMaLr%S7MUk0SFO_GE0*lJov@e9m%d~wta~^dRv)QAb9A;?@#@P8<_iHo*q@$@7 zXNmU2(1K>XG4vw*S1zQ%Cx`D=>2BFO_QTw?hcrLRkG4oP1q{rG7hqXutxQ@*Itp*o zDHb=u|Jcb?jtO-X4|IS(K}T)bGH2riK%HG@gXGNek;rp!eYja^ z{OhMi~Bh1nYa#9{?D9OL#lu!-gPUQwv}D^Im!(#`~J;tx^>5w)H~N zctu@3B({b$CZ6|KzcXVVup+T~rOx%dB{TciC$9_3es%v$9~Lr>M{1GI<~!vtRmgwk z9A@m-rYH?=CGz(P{pm?`q+Iew$r&3m*pIS2be6Mc?}^RCr{g8Os!UIdM_FrU%0R}n zh|TIK9}t=vm!L6!?9A`-=x**J_P)?*W5ZHZkV+9It^T2*Us(fy(eeesG>>F&9Q=L0 z=P>!IIu``5MHWr=nPJ)sVJ`9wb9vZP76lK?rvF^u32*yJraU^&??yJeldkiNr3d$v z@9h)S;1I*NujQdX_?m)b#`pHlKCd^oH+lHGE$@Ht`ewd(&B&@I&@xr=D=im65MZXE zj|@Bcxw@gCX$ zl>#a7m@?S>IbN#Y)s*3B_l0z zo^A&!-%NseQs?jm43%s&P6;$)vJql!;S+;jtZP``nuL!?KNBDL)Ly^%;OFikCg|p@ zY-%n}Is3PhwFlYgwo{0}U(d2<%N zQh(pxi6SF;7^Yln?Ci4CkotF*d^Q@J-1`EoAdl>2J(>Es4-$Fbv(vxjAAl)#*=@3Phaw1o~?pEp%~=cj3Go_xX)12 z3I{DLMrkyT&&aTJ?(a%S{vPvl&htQ~Cse-O)kJ(OTt`0-IcOcq(6c-K0mSsR&zZ-K zdw!gL$tSCxFS0+c)kDr%B*ny@q!$avM^#b;_3`jnvA~4wA)dGlyTtDUXgTG(>D_jo z1iN0%oBlXSlQlOq>b`SZIs5qzq0h|$5S07u6K?dEo7J|=D%(tPYWFf#_}cijdgDL3AAMAAq;CSYBZ>^o0Mmj zAynHX4C(Gl5*Mi#LdARLlV!J!I|UuV1iYwl4IY$;sxB_LK3tXNAuhB&Q{xC1SF%1< z%L|AH5v{**E9Ag~h}Gw(v;j~e1Elpfm7@S$36$u-O9HSsL==S_0REpS8VF&K5>a*X z^7dgDlLGyJCIo??pud@r2RUnOuC@4_HgwZy>DfPmqs;?c2G3K$Z<@9+#8Fk83R$*9 z-=ZZkk9CA}lb)fy)oaSHc}Y}3Zr@`jDG*fwQpW8)%tGpC8T3GLs6eo# zSBBLuaK`Yfxj=*>MKJmm?)E) z;#Of?`qU~gWK@5zmvmhazxFHcx;KwiR$aKzEdk|?ngkLnfRe^lFHY{7IZn8}QY>r$ zUBa1T6sVKKHVv3aPS(1=3^_c9)f6n3igTF8T=|T)P5XqCl={h#Wlv5)i!&3`!XKPH zA`#E2jqqw1d}Ifg$z!{A^)lC?efF3=>ZKKdOvRKF5-Odg@gZLlpnvyURzF~OVgUD% zHok9tg;DMHl4F5SDn;q6*tMbb{K`3oL>0Tbd+VB!Qoj(Hml&39Kv`wumzCM&_oLdQ z$0HYyR&zspPKL|M;i?QCy&$`V?S9iEJWqO4W9e2MQZ5?NMLOjra9Z@aICr$#>&@9M zw@~FTWSAdi|J8eB-)oWnt~avZL#Hkt$o@X5=q7$SdT{}G+#J;^!+0t@zT6btNz>CD z$skk5Lr(cBZiu;y%zgb-)pb^|2@n0vW|8_2sLilCypq7hqKq)SbwqPspxt5Rp4NTp zDAVpIZ{c)1Hspo?H?%!U{wEXtsS1C5SJIuHGt#6vFXYFUYK+W8wdcKUz3Xpyvd7lJ zP2$@HxyowN1NfQ$_}!687w`0;!?5f&(CjpY-TN@mCHIibv6Y`lh1IzVP7;Mh52&5& z>56!i=~+~rpeNQ9u({2Yc_6 zkRnu-olEngNpd%r+#~TAl5$(R>s0wWdfnOtS2J_;>fZ5HEP$yi&OsSpYd}cW2JLx6 z=$WMMg7eRVLQxmIF`B}73!Ij0W^&o-Po}0?jmqBS4cb34iuhYq@+Hqrp~5j|%B$Tm zZ519ntIN@CaGzn7vR?`IIs@f@{JIg++>LtcX7Ygqa6`p=yz{ySMiM)BTW=pPJ1e(; z)xSj+B8gfYWkpJvi|9E8*|9^UM2t*9>|*R7a}iw+4ZnN`S#Ih!|J}CM5=esz6~%lJe~TeZ>4fxP;(IvHveGS%;;l zajh65S8G7um~7atHMvm&bpc`+K7vMGB79g>hHkTEcb@cVQat1 zaXpHJ4}RH#wAyc-iL8j`f+}r*f!aC7ZnN~~9*s#SI(sWnqjqqAr(;0Z?!(_zbV?|R TaaK~Wl#~<+508qLD#`xUmgN9 zH?!e)pdkV@Ig{ac6SJ0?ryBt=li_z0vr)Cf8xOPATl>KFHB`_XLM*FF)=eX zlc6Ief7MrOPuoZo{m!qLk5pBd_rp?!6p{weHeEKMuvO#_CK-aY!H#T0VSoLeamdR` zx6oGXRsm1$c;=pS?!Dt&Yr=>kP7tn$V3u%6M8pZVL@`6SAu3`-aAJhPePTH*te3DP zi3Hmd*uxY|tmcvt{BfZ)yucSOQo=R1NI+=je+YaV39K;SE(V308lw|?GC(>l-JiwvQt&G!%0@vurNPxxY@2WW8V z33#o+dO|}={SDEKp5~$;q{g9VMLr(-YDCYvJ$mjRs<;N{-X=P*0Mw-jmn32R_VMQvoYQ&kbvEz^>N%*%We~KeF z!Vh}PnFe2n(T3YG7p#s&yef*2lCCeuMLMtYqBcJ!x1JuKoc-~+{q{qDkl!X57pC8)_7Dude+C@2_xmp$CS_d88T~)ydGmO5^ z#`z@8ru1|I%(QxJozSDC^!3u+`WE~q2|%%^L<|E=OwaRASqg8SDEV)|U>EEK{x`6; zBTv-g_+5rxZ7KAzL{Lt%>l|PMKTXT3cqIGnNq*(u(BF%RFCdTXFZI0ve~<*qdMhQt2l#oJE5f6Cd8^x`D81lmF5#SyF7D!C?7Te+3%+;ZI7%x#OSr|ep> zPOjv%bCVQE<~}{8XY_%B|1#Y~=^bI-C7|2C?0)pIS`nNCgO_}zYGLL)h%fT^Z4nObA z6CR$e$ONHi;H=dvp%DG@JSnzY>ebzB=BrKq(KGoEyBD4IdCh-Up3qIVB8^uIfs1wG z2kCz$Qwfe!k(PhmCe_V`2+hCsEaB_3+&D0eGrVYCdTCKs0hL%ue?KHo-?`xQGM!X6 zWq2)nKH^q|H}G5oPq{UowktUM0=Pz{Z3Al70OWc@pk4v$7XWUTMgvbY@HXNpS7@ez z78;#0^e1*pXml2k&QaQdPGnD0!2)BO)TaTBD8j?heS#dg|35Az;lH$pl%^EItAUbI0DTm2T+b0jR zwRS)S%rDv%s#1;W6e8{z;+@_aSe(=rmKuAtjm<~x;CNQMxUSS5jd7nEo^SgBm5vk& TlR4NO3o