From 81576bf772cf5a397a9a380eb6f30b97270710c5 Mon Sep 17 00:00:00 2001 From: "Maxime Chupin (escudo)" Date: Tue, 29 Nov 2016 17:31:12 +0100 Subject: [PATCH] Voronoi en TikZ --- luamesh.lua | 70 ++++++++++++++++++++++++++++++++++++++++++++++ luamesh.sty | 2 +- test/delaunay.pdf | Bin 47864 -> 52831 bytes test/delaunay.tex | 9 ++++-- 4 files changed, 78 insertions(+), 3 deletions(-) diff --git a/luamesh.lua b/luamesh.lua index 4d255a1..af3da31 100644 --- a/luamesh.lua +++ b/luamesh.lua @@ -389,6 +389,66 @@ function traceVoronoiMP(listPoints, triangulation,listVoronoi, points, tri) end +-- trace Voronoi with TikZ +function traceVoronoiTikZ(listPoints, triangulation,listVoronoi, points, tri,color,colorBbox,colorVoronoi) + listCircumC = listCircumCenter(listPoints,triangulation) + output = "" + for i=1,#listPoints do + output = output .. "\\coordinate (MeshPoints".. i .. ") at (" .. listPoints[i].x .. "," .. listPoints[i].y .. ");" + end + for i=1,#listCircumC do + output = output .. "\\coordinate (CircumPoints".. i .. ") at (" .. listCircumC[i].x .. "," .. listCircumC[i].y .. ");" + end + if(tri=="show") then + for i=1,#triangulation do + PointI = listPoints[triangulation[i][1]] + PointJ = listPoints[triangulation[i][2]] + PointK = listPoints[triangulation[i][3]] + if(triangulation[i].type == "bbox") then + output = output .. "\\draw[color="..colorBbox.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;" + else + output = output .. "\\draw[color="..color.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;" + end + end + end + for i=1,#listVoronoi do + PointI = listCircumC[listVoronoi[i][1]] + PointJ = listCircumC[listVoronoi[i][2]] + output = output .. "\\draw[color="..colorVoronoi.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..");" + end + if(points=="points") then + j=1 + for i=1,#listPoints do + if(listPoints[i].type == "bbox") then + if(listPoints[i].type == "bbox") then + output = output .. "\\draw[color="..colorBbox.."] (" .. listPoints[i].x ..",".. listPoints[i].y .. ") node {$\\bullet$} node[anchor=north east] {$\\MeshPoint^*_{" .. j .. "}$};" + j=j+1 + else + output = output .. "\\draw[color="..color.."] (" .. listPoints[i].x ..",".. listPoints[i].y .. ") node {$\\bullet$} node[anchor=north east] {$\\MeshPoint_{" .. i .. "}$};" + end + end + end + for i=1,#listCircumC do + output = output .. "\\draw[color="..colorVoronoi.."] (" .. listCircumC[i].x ..",".. listCircumC[i].y .. ") node {$\\bullet$} node[anchor=north east] {$\\CircumPoint_{" .. i .. "}$};" + end + else + j=1 + for i=1,#listPoints do + if(listPoints[i].type == "bbox") then + output = output .. "\\draw[color="..colorBbox.."] (" .. listPoints[i].x ..",".. listPoints[i].y .. ") node {$\\bullet$} ;" + j=j+1 + else + output = output .. "\\draw[color="..color.."] (" .. listPoints[i].x ..",".. listPoints[i].y .. ") node {$\\bullet$} ;" + end + end + for i=1,#listCircumC do + output = output .. "\\draw[color="..colorVoronoi.."] (" .. listCircumC[i].x ..",".. listCircumC[i].y .. ") node {$\\bullet$};" + end + end + return output +end + + -- buildVoronoi with MP function buildVoronoiMPBW(chaine,mode,points,bbox,scale,tri) @@ -401,6 +461,16 @@ function buildVoronoiMPBW(chaine,mode,points,bbox,scale,tri) end +-- buildVoronoi with TikZ +function buildVoronoiTikZBW(chaine,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 .."]" .. output .."\\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 de6d9e7..7d13961 100644 --- a/luamesh.sty +++ b/luamesh.sty @@ -273,7 +273,7 @@ \def\CircumPoint{\luameshval@bv@circumpoint}% \ifKV@buildVoronoi@tikz% if we are using tikz \directlua{% - buildVoronoiTikZBW("#2","\luameshval@bv@mode","\luameshval@bv@print","\luameshval@bv@bbox","\luameshval@bv@scale","\luameshval@bv@color","\luameshval@bv@colorbbox")% + buildVoronoiTikZBW("#2","\luameshval@bv@mode","\luameshval@bv@print","\luameshval@bv@bbox","\luameshval@bv@scale","\luameshval@bv@delaunay","\luameshval@bv@color","\luameshval@bv@colorbbox","\luameshval@bv@colorVoronoi")% }% \else % we are using MP \mplibcolor{\luameshmpcolor}{\luameshval@bv@color}% diff --git a/test/delaunay.pdf b/test/delaunay.pdf index f2089436a3864b2f0eadc1c868f49fa2e3cefb9c..a20e09e8dba9aeb46396b230b030505c39753c78 100644 GIT binary patch delta 10297 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 Ef2bnEOaK4? delta 5375 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 UIX@GV5R;U6#=)Vg3widx07hB|hX4Qo diff --git a/test/delaunay.tex b/test/delaunay.tex index d79b5b7..242e08b 100644 --- a/test/delaunay.tex +++ b/test/delaunay.tex @@ -146,7 +146,12 @@ colorBbox = black % buildVoronoiMP("mesh.txt","ext","points","","1cm","show") % } \buildVoronoiBW[mode=ext]{mesh.txt} -\buildVoronoiBW[mode=ext,delaunay=show]{mesh.txt}\par -\buildVoronoiBW[mode=ext,print=points,delaunay=show,bbox=show]{mesh.txt} +\buildVoronoiBW[mode=ext,delaunay=show,colorVoronoi=green!60!blue]{mesh.txt}\par +\buildVoronoiBW[mode=ext,print=points,delaunay=show,bbox=show,meshpoint=x,circumpoint=y]{mesh.txt} + + +\buildVoronoiBW[tikz,mode=ext]{mesh.txt} +\buildVoronoiBW[tikz,mode=ext,delaunay=show,colorVoronoi=green!60!blue]{mesh.txt}\par +\buildVoronoiBW[tikz,mode=ext,print=points,delaunay=show,bbox=show,meshpoint=x,circumpoint=y]{mesh.txt} \end{document} -- 2.20.1