X-Git-Url: https://melusine.eu.org/syracuse/G/git/?a=blobdiff_plain;f=doc%2Fluamesh-doc.tex;h=d2cbafd84034691e4b1f77a26a1ebbc8a7126e12;hb=e6a198893462d13ac7958d3853b91e0a17dcdd28;hp=80469eb7bedb79cce110f2f480f440c8868771d4;hpb=9a7fa0ea882050fc752a0c53137d38209664a4e7;p=delaunay.git diff --git a/doc/luamesh-doc.tex b/doc/luamesh-doc.tex index 80469eb..d2cbafd 100644 --- a/doc/luamesh-doc.tex +++ b/doc/luamesh-doc.tex @@ -12,7 +12,7 @@ \usepackage{enumitem} \usepackage[tikz]{bclogo} \usepackage{wrapfig} - +\usepackage{animate} \title{\Verb+luamesh+: compute and draw meshes with \lualatex} \author{Maxime Chupin \email{mc@melusine.eu.org}} @@ -34,7 +34,7 @@ \newcommand*\optstar{% % optional star \meta{\ensuremath{*}}\xspace} \DefineShortVerb{\|} - +\newcommand\R{\mathbf{R}} \setlength{\fboxsep}{2pt} \fvset{% codes={\catcode`\«\active \catcode`\×\active }, @@ -67,8 +67,9 @@ breaklines=true, breakindent=30pt, defaultdialect=[LaTeX]TeX, - morekeywords={buildMeshBW,buildMeshBWinc,drawPointsMesh, - drawPointsMeshinc, meshAddPointBW, meshAddPointBWinc}% frame=tb + morekeywords={buildMeshBW,buildMeshBWinc,drawPointsMesh,buildVoronoiBW,buildVoronoiBWinc, + drawPointsMeshinc, meshAddPointBW, + meshAddPointBWinc,drawGmsh,drawGmshinc,gmshVoronoi,gmshVoronoiinc}% frame=tb } \lstdefinelanguage{lua} @@ -166,7 +167,7 @@ } \vfill \begin{center} - Version 0.1, 25 novembre 2016\\ + Version 0.2, 29 novembre 2016\\ \url{http://melusine.eu.org/syracuse/G/delaunay/} \end{center} %% == Page de garde ==================================================== @@ -199,7 +200,7 @@ I would also like to thank the first user, an intensive Of course, you can just put the two files \Verb+luamesh.lua+ and -\Verb+luamesh.sty+ in the working directory, but this is not +\Verb+luamesh.sty+ in the working directory but this is not recommended. @@ -212,12 +213,12 @@ To install \luamesh with \TeX live, you have to create the local mkdir ~/texmf \end{commandshell} -Then place the files in the correct directories. First, the -\Verb+luamesh.sty+ file must be in the directory: +Then place the files in the correct directories. The +\Verb+luamesh.sty+ file must be in directory: \begin{center} \Verb+~/texmf/tex/latex/luamesh/+ \end{center} -and secondly, the \Verb+luamesh.lua+ must be in the directory: +and the \Verb+luamesh.lua+ file must be in directory: \begin{center} \Verb+~/texmf/scripts/luamesh/+ \end{center} @@ -230,7 +231,7 @@ with \subsection{With Mik\TeX{} and Windows} -We do not know these two systems, so we refer to the +As these two systems are unknown to the contributor, we refer to the documentation for integrating local additions to Mik\TeX: \begin{center} \url{http://docs.miktex.org/manual/localadditions.html} @@ -249,26 +250,26 @@ If you want to use this package, you must compile your document with \subsection{Dependencies} -This package is built upon two main existing packages to draw the +This package is built upon two main existing packages that one used to +draw the triangulations : \begin{enumerate} \item \Verb+luamplib+ to use MetaPost via the \luatex library \Verb+mplib+; -\item and \Verb+tikz+. +\item \Verb+tikz+. \end{enumerate} We will see how to choose between these two \emph{drawing engines}. - Moreover, the following packages are necessary: \begin{enumerate} \item \Verb+xkeyval+ to manage the optional arguments; -\item \Verb+xcolor+ to use colors (needed by \Verb+luamplib+); -\item \Verb+ifthen+ to help the programming with \TeX. +\item \Verb+xcolor+ to use colors (required by \Verb+luamplib+); +\item \Verb+ifthen+ to help programming with \TeX. \end{enumerate} \section{The Basic Macros} -Let us recall that this package provides macros to draw two +This package provides macros to draw two dimensional triangulations (or meshes). \subsection{Draw a Complete Mesh}\label{sec:buildMesh} @@ -292,7 +293,7 @@ There are several options to customize the drawing. \begin{optionsenum} \item[mode = int (default) \textme{or} ext:] this option allows to use either the previously described set of points in the argument, or - a file, containing, line by line (2 columns), the points. Such a + a file containing the points line by line (in 2 columns). Such a file looks like : \begin{verbatim} x1 y1 @@ -302,12 +303,12 @@ x3 y3 xn yn \end{verbatim} \item[bbox = none (default) \textme{or} show:] this option allows to draw the - added points to form a \emph{bounding box}\footnote{The bounding + points added to form the \emph{bounding box}\footnote{The bounding box is defined by four points place at 15\% around the box defined by $(x_{\min},y_{\min})$, $(x_{\min},y_{\max})$, $(x_{\max},y_{\max})$, and $(x_{\min},y_{\max})$. It is used by - the algorithm and will be computed in any case.} and the corresponding - triangulation. By default, these triangles are removed at the end of + the algorithm and will be computed in any case.} and the + triangles attached. By default, these triangles are removed at the end of the algorithm. \item[color = \meta{value} (default: black):] The color of the drawing. @@ -355,10 +356,10 @@ file \Verb+mesh.txt+: \end{Exemple} \begin{warning} -The drawing engine is not very relevant here, but it is useful to -understand how the drawing is made. However, the engine will be +The drawing engine is not very relevant here, although it is useful to +understand how the drawing is produced. However, the engine will be relevant to -the so called \emph{inc} macros (section~\ref{sec:inc}), for adding +the so called \emph{inc} macros (section~\ref{sec:inc}) for adding code before and after the one generated by \luamesh. \end{warning} @@ -384,7 +385,7 @@ There are several options (exactly the same as for the \begin{optionsenum} \item[mode = int (default) \textme{or} ext:] this option allows to use either the previously described set of points as the argument, or - a file, containing, line by line (2 columns), the points. Such a + a file containing the points line by line (in 2 columns). Such a file looks like : \begin{verbatim} x1 y1 @@ -394,8 +395,12 @@ x3 y3 xn yn \end{verbatim} \item[bbox = none (default) \textme{or} show:] this option allows to draw the - added points to form a \emph{bounding box} and the corresponding - triangulation. By default, these triangles are removed at the end of + points added to form the \emph{bounding box}\footnote{The bounding + box is defined by four points place at 15\% around the box + defined by $(x_{\min},y_{\min})$, $(x_{\min},y_{\max})$, + $(x_{\max},y_{\max})$, and $(x_{\min},y_{\max})$. It is used by + the algorithm and will be computed in any case.} and the + triangles attached. By default, these triangles are removed at the end of the algorithm. \emph{Here, because we plot only the vertices of the mesh, there are no triangles, only dots.} \item[color = \meta{value} (default: black):] The color of the @@ -404,10 +409,10 @@ xn yn drawing for the elements (points and triangles) belonging to the bounding box. \item[print = none (default) \textme{or} points:] To label the vertices of the - triangulation. This also adds a \emph{dot} at each vertex. Without - label, there is still the dot. + triangulation. This also adds a \emph{dot} at each vertex. With no + label, the dot remains. \item[meshpoint = \meta{value} (default: P):] The letter(s) used to - label the vertices of the triangulation. It is included in the math + label the vertices of the triangulation. This is included in the math mode delimiters \Verb+$...$+. The bounding box points are labeled with numbers 1 to 4 and with a star exponent. \item[tikz (boolean, default:false):] By default, this boolean is set @@ -441,7 +446,7 @@ section~\ref{sec:buildMesh}, we illustrate the different options. \commande|\meshAddPointBW[«options»]{«list of points» or «file name»}{«point» or «number of line»}|\medskip This command allows to plot the steps within the addition of a -point in a Delaunay triangulation, by the Bowyer and Watson +point in a Delaunay triangulation by the Bowyer and Watson algorithm. This macro produces the Delaunay triangulation (using the Bowyer and @@ -455,7 +460,7 @@ and the point is of the form \verb+(x,y)+. The \meta{file name} and \meta{number of line} will be explained in the option description. -One can use the macro as fallows: +One can use the macro as follows: \begin{Exemple} \meshAddPointBW[step=badtriangles]{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)} \meshAddPointBW[step=cavity]{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)} @@ -474,9 +479,8 @@ There are several options (some of them are the same as for \Verb+\buildMeshBW+) to customize the drawing. \begin{optionsenum} \item[mode = int (default) \textme{or} ext:] this option allows to - use either the previously described set of point in the first - argument, or - a file containing, line by line (2 columns), the points. Such a + use either the previously described set of points as the argument, or + a file containing the points line by line (in 2 columns). Such a file looks like : \begin{verbatim} x1 y1 @@ -485,15 +489,17 @@ x3 y3 ... xn yn \end{verbatim} -For the second argument of the macro, if we are in the +For the second argument of the macro, if we are in \Verb+mode = ext+, the argument must be the \emph{line number} of the file -corresponding to the point we want to add. The algorithm will stop the -line before to build the initial triangulation for which it will add -the point corresponding to the line. The subsequent lines in the file are +corresponding to the point we want to add. The algorithm will stop at the +previous line to build the initial triangulation and proceed to add +the point corresponding to the line requested. The subsequent lines in +the file are ignored. \item[bbox = none (default) \textme{or} show:] this option allows to draw the - added points to form a \emph{bounding box} and the corresponding - triangulation. By default, these triangles are removed at the end of + added points that form the \emph{bounding box} and the triangles + attached. Although they are always computed, by default, these + triangles are removed at the end of the algorithm. \item[color = \meta{value} (default: black):] The color of the drawing. @@ -502,7 +508,7 @@ ignored. bounding box. \item[colorNew = \meta{value} (default: red):] The color of the drawing of the ``new'' elements which are the point to add, the - polygon of the cavity, and the new triangles. + polygon delimiting the cavity, and the new triangles. \item[colorBack = \meta{value} (default: black!20):] The color for the filling of the region concerned by the addition of the new point. \item[colorCircle = \meta{value} (default: green):] The color for @@ -522,7 +528,7 @@ ignored. the picture. With this option, \Verb+tikz+ is the \textit{drawing engine}. \item[scale = \meta{value} (default: 1cm):] The scale option defines - the scale at which the picture is draw (the same for the two + the scale at which the picture is drawn (the same for both axis). It must contain the unit of length (cm, pt, etc.). \end{optionsenum} @@ -579,11 +585,11 @@ The three macros are:\medskip We consider the case where the drawing engine is MetaPost (through the \Verb+luamplib+ package). -We describe the feature taking one macro in example but the mechanism -and the possibilities are exactly the same for all the macros. +The feature is described for the \Verb+\buildMeshBWinc+ but the mechanism +and possibilities are exactly the same for all three macros. When we use the MetaPost drawing engine, the macros previously -described produced a code of the form +described produce a code of the form \begin{latexcode} \begin{luamplib} u:=; @@ -609,26 +615,28 @@ and \Verb+endfig;+ commands to produce a picture. Indeed, this allows to use the \Verb+\everymplib+ command from the \Verb+\luamplib+ package. \end{warning} -\subsubsection{The \LaTeX{} Colors Inside the MetaPost Code} +\subsubsection{The \LaTeX{} Colors Inside the MetaPost Code}\label{sec:mpcolor} The configurable colors of the \LaTeX{} macro are accessible inside the MetaPost code. For -\Verb+\buildMeshBWinc+ and \Verb+\drawPointsMeshinc+, we have +\Verb+\buildMeshBWinc+ and \Verb+\drawPointsMeshinc+, \Verb+\luameshmpcolor+, -and \Verb+\luameshmpcolorBbox+. -For the macro \Verb+\meshAddPointBWinc+ we have three additional -colors : \Verb+\luameshmpcolorBack+, \Verb+\luameshmpcolorNew+, and -\Verb+\luameshmpcolorCircle+. Of course, we can define MetoPost -colors as well. Finally, the \Verb+luamplib+ mechanism of +and \Verb+\luameshmpcolorBbox+ have been defined. +For the macro \Verb+\meshAddPointBWinc+ three additional +colors are present: \Verb+\luameshmpcolorBack+, +\Verb+\luameshmpcolorNew+, and +\Verb+\luameshmpcolorCircle+. Of course, MetaPost +colors can be defined as well. Finally, the \Verb+luamplib+ mechanism \Verb+\mpcolor+ is also available. \subsubsection{The Mesh Points} At the beginning of the automatically generated code, a list of -MetaPost \Verb+pair+s are defined corresponding to all the vertices of +MetaPost \Verb+pair+s are defined corresponding to all the vertices in the mesh (when the option \Verb+bbox=show+, the last 4 points are the \emph{bounding box points}). The points are available with the -\Verb+MeshPoints[]+ table of variables. The \Verb+MeshPoints[i]+ are +\Verb+MeshPoints[]+ table of variables. The \Verb+pair+s ($\R^{2}$ points) +\Verb+MeshPoints[i]+ are defined using the unit length \Verb+u+. \subsubsection{Examples} @@ -689,7 +697,7 @@ step=badtriangles] \end{Exemple} \begin{warning} The variables \Verb+MeshPoints[]+ are not defined for the argument - corresponding to the code to place before the code generated by + corresponding to the code placed \textbf{before} the code generated by \luamesh. Hence, to use such variables, we have to define a \Verb+picture+ as shown in the third example above. \end{warning} @@ -697,7 +705,7 @@ step=badtriangles] \subsection{With TikZ} -If we have chosen \Verb+tikz+ as the engine drawing, the added code +If we have chosen \Verb+tikz+ as the drawing engine, the added code will be written in \Verb+tikz+. In that case, the two arguments \meta{code before} and \meta{code after} will be inserted as follows: \begin{latexcode} @@ -710,12 +718,12 @@ will be written in \Verb+tikz+. In that case, the two arguments \end{latexcode} Because the engine is \Verb+tikz+ their is no issue with colors, the -\LaTeX{} colors (e.g.: \Verb+xcolor+) can be directly used. +\LaTeX{} colors (e.g.: \Verb+xcolor+) can be used directly. \subsubsection{The Mesh Points} -The points of the mesh are defined here as \Verb+tikz+ -\Verb+\coordinate+ named as follows +The mesh points are defined here as \Verb+tikz+ +\Verb+\coordinate+ and named as follows \begin{latexcode} \coordinate (MeshPoints1) at (...,...); \coordinate (MeshPoints2) at (...,...); @@ -723,7 +731,8 @@ The points of the mesh are defined here as \Verb+tikz+ %etc. \end{latexcode} -Once again these coordinates are not yet defined for the \meta{code +Once again these coordinates are not yet defined to be used in the +code given by \meta{code before} argument. \subsubsection{Examples} @@ -757,6 +766,333 @@ Once again these coordinates are not yet defined for the \meta{code } \end{Exemple} +\section{Voronoï Diagrams} + +Another interesting feature of b Delaunay triangulation is that its +\emph{dual} is the so-called Voronoï diagram. More precisely, for a +finite set of +points $\{p_{1},\ldots, p_{n}\}$ in the Euclidean plane, the Voronoï +cell $R_{k}$ corresponding to $p_{k}$ is the set of +all points in the Euclidean plane $\R^{2}$ whose distance to $p_{k}$ is less +than +or equal to its distance to any other $p_{k'}$.\bigskip + + +\commande|\buildVoronoiBW[«options»]{«list of points» or «file name»}|\medskip + +This macro produce the Voronoï diagram of the given \meta{list of + points}. Once again, the +list of +points must be given in the following way : +\begin{center} + \verb+(x1,y1);(x2,y2);(x3,y3);...;(xn,yn)+ +\end{center} + +\begin{Exemple} + \buildVoronoiBW{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5);(0.1,2);(1.5,-0.3)} +\end{Exemple} + +\subsection{The Options}\label{sec:voronoiOptions} + + +There are several options to customize the drawing. +\begin{optionsenum} +\item[mode = int (default) \textme{or} ext:] this option allows to + use either the previously described set of points in the argument, or + a file containing the points line by line (in 2 columns). Such a + file looks like : +\begin{verbatim} +x1 y1 +x2 y2 +x3 y3 +... +xn yn +\end{verbatim} +\item[bbox = none (default) \textme{or} show:] this option allows to draw the + added points to form a \emph{bounding box}\footnote{The bounding + box is defined by four points place at 15\% around the box + defined by $(x_{\min},y_{\min})$, $(x_{\min},y_{\max})$, + $(x_{\max},y_{\max})$, and $(x_{\min},y_{\max})$. It is used by + the algorithm and will be computed in any case.} and the corresponding + triangulation. By default, these points are removed at the end of + the algorithm. +\item[color = \meta{value} (default: black):] The color of the + drawing. +\item[colorBbox = \meta{value} (default: black):] The color of the + drawing for the elements (points and triangles) belonging to the + bounding box. +\item[colorVoronoi = \meta{value} (default: black):] The color of the + drawing for the elements (points and polygons) belonging to the + Voronoï diagram. +\item[print = none (default) \textme{or} points:] To label the + vertices in the + triangulation. Contrary to the previous macros, where + \Verb+print=none+, a \emph{dot} is produced at each vertex of the + set of points and at the circumcircle centers which are the nodes of + the Voronoï diagram. +\item[meshpoint = \meta{value} (default: P):] The letter(s) used to + label the vertices of the triangulation. This is included in the math + mode delimiters \Verb+$...$+. The bounding box points are labelled + with numbers 1 to 4 and with a star exponent. +\item[circumpoint = \meta{value} (default: P):] The letter(s) used to + label the vertices of the Voronoï diagram. This is included in the math + mode delimiters \Verb+$...$+. +\item[tikz (boolean, default:false):] By default, this boolean is set + to \Verb+false+, and MetaPost (with \Verb+luamplib+) is used to draw + the picture. With this option, \Verb+tikz+ becomes the \textit{drawing + engine}. +\item[scale = \meta{value} (default: 1cm):] The scale option defines + the scale at which the picture is drawn (the same for both + axes). It must contain the unit of length (cm, + pt, etc.). +\item[delaunay = none (default) \textme{or} show:] This option + allows to draw the Delaunay triangulation under the Voronoï diagram. +\item[styleDelaunay = none (default) \textme{or} dashed:] This option + allows to draw the Delaunay triangulation in dashed lines. +\item[styleVoronoi = none (default) \textme{or} dashed:] This option + allows to draw the Voronoï edges in dashed lines. +\end{optionsenum} + +\begin{Exemple} + \buildVoronoiBW[tikz,delaunay=show,styleDelaunay=dashed] + {(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5);(0.1,2);(1.5,-0.3)} +\end{Exemple} + +\subsection{The \emph{inc} variant} + +Once again, a variant of the macros is available allowing the user to +add code before and after the code produced by \luamesh. We refer to +section~\ref{sec:inc} because it works the same way. + +Let us note that: +\begin{itemize} +\item with MetaPost, the circumcenters are defined using + \Verb+pair CircumPoints[];+ and so they are accessible. +\item With \Verb+tikz+, there are new coordinates defined as follows + \begin{latexcode} + \coordinate (CircumPoints1) at (...,...); + \coordinate (CircumPoints2) at (...,...); + \coordinate (CircumPoints3) at (...,...); + % etc. + \end{latexcode} +\end{itemize} + +Finally, when the MetaPost drawing engine is used another color is +available (see~\ref{sec:mpcolor}): \Verb+\luameshmpcolorVoronoi+. + + +\section{With Gmsh} + +Gmsh is an open source efficient software that produces meshes. The +exporting format is the \emph{MSH ASCII file format} and can be easily +read by a Lua program. \luamesh provides the user with dedicated +macros to read and draw meshes coming from a Gmsh exportation.\bigskip + +\commande|\drawGmsh[«options»]{«file name»}|\medskip + +This macro draws the triangulation produced by Gmsh and exported in the +\Verb+msh+ format. The argument is the name of the file to be read +(e.g.: \Verb+maillage.msh+). + +\begin{Exemple} +\drawGmsh{maillage.msh} +\end{Exemple} + +There are several options to customize the drawing. +\begin{optionsenum} +\item[color = \meta{value} (default: black):] The color of the + drawing. +\item[print = none (default) \textme{or} points:] To label the vertices of the + triangulation. Contrary to some previous macros, when + \Verb+print=none+ a \emph{dot} is produced at each vertex of the + set of points and at the circumcircle centers (these are the nodes of + the Voronoï diagram). +\item[meshpoint = \meta{value} (default: P):] The letter(s) used to + label the vertices of the triangulation. This is included in the math + mode delimiters \Verb+$...$+. The bounding box points are labeled + with numbers 1 to 4 and with a star exponent. +\item[tikz (boolean, default:false):] By default, this boolean is set + to \Verb+false+, and MetaPost (with \Verb+luamplib+) is used to draw + the picture. With this option, \Verb+tikz+ becomes the \textit{drawing + engine}. +\item[scale = \meta{value} (default: 1cm):] The scale option defines + the scale at which the picture is drawn (the same for both + axes). It must contain the unit of length (cm, + pt, etc.). +\end{optionsenum} +Here is an example: +\begin{Exemple} + \drawGmsh[scale=2cm,print=points, color=blue!30]{maillage.msh} +\end{Exemple} + +\subsection{Gmsh and Voronoï Diagrams} + +Because Gmsh generates Delaunay triangulations, we can plot the associated +Voronoï diagram. This is done by the following macro:\bigskip + +\commande|\gmshVoronoi[«options»]{«file name»}|\medskip + +\begin{Exemple} + \gmshVoronoi{maillage.msh} +\end{Exemple} + + +\subsection{The Options}\label{sec:voronoiOptions} + + +There are several options to customize the drawing. +\begin{optionsenum} +\item[color = \meta{value} (default: black):] The color of the + drawing. +\item[colorVoronoi = \meta{value} (default: black):] The color of the + drawing for the elements (points and polygons) belonging to the + Voronoï diagram. +\item[print = none (default) \textme{or} points:] To label the vertices of the + triangulation. Contrary to some previous macros, when + \Verb+print=none+, a \emph{dot} is produced at each vertex of the + set of points and at the circumcircle centers (these are the nodes of + the Voronoï diagram). +\item[meshpoint = \meta{value} (default: P):] The letter(s) used to + label the vertices of the triangulation. It is included in the math + mode delimiters \Verb+$...$+. The bounding box points are labeled + with numbers 1 to 4 and with a star exponent. +\item[circumpoint = \meta{value} (default: P):] The letter(s) used to + label the vertices of the Voronoï diagram. This is included in the math + mode delimiters \Verb+$...$+. +\item[tikz (boolean, default:false):] By default, this boolean is set + to \Verb+false+, and MetaPost (with \Verb+luamplib+) is used to draw + the picture. With this option, \Verb+tikz+ becomes the \textit{drawing + engine}. +\item[scale = \meta{value} (default: 1cm):] The scale option defines + the scale at which the picture is drawn (the same for both + axes). It must contain the unit of length (cm, + pt, etc.). +\item[delaunay = none (default) \textme{or} show] This option + allows to draw the Delaunay triangulation overlapped with the + Voronoï diagram. +\item[styleDelaunay = none (default) \textme{or} dashed] This option + allows to draw the Delaunay triangulation in dashed lines. +\item[styleVoronoi = none (default) \textme{or} dashed] This option + allows to draw the Voronoï edges in dashed lines. +\end{optionsenum} + +\begin{Exemple} + \gmshVoronoi[tikz,scale=1.5cm, delaunay=show,styleVoronoi=dashed]{maillage.msh} +\end{Exemple} + + +\subsection{The \emph{inc} variants} + +Once again, there exist \emph{inc} variant macros:\bigskip + +\commande|\drawGmshinc[«options»]{«file name»}{«code before»}{«code after»}|\medskip + +\commande|\gmshVoronoiinc[«options»]{«file name»}{«code before»}{«code after»}|\medskip + +We refer to the previous sections for explanations. + +\section{Gallery} +\subsection{With Animate} + +If you use \emph{Adobe Acrobat reader}, you can easily produce an +animation of the Bowyer and Watson algorithm with the package +\Verb+animate+. + +For example, the following code (in a file name \Verb+animation.tex+): +\begin{latexcode} + \documentclass{article} + %% lualatex compilation + \usepackage[margin=2.5cm]{geometry} + \usepackage{luamesh} + \usepackage{fontspec} + \usepackage{multido} + \pagestyle{empty} + \def\drawPath{draw (-2,-2)*u--(8,-2)*u--(8,6)*u--(-2,6)*u--cycle withcolor 0.99white;} + \def\clipPath{clip currentpicture to (-2,-2)*u--(8,-2)*u--(8,6)*u--(-2,6)*u--cycle;} + \begin{document} + \drawPointsMeshinc[mode=ext, bbox = show,colorBbox = blue!20,print=points]{mesh.txt}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } + \newpage\buildMeshBWinc[mode=ext,bbox = show,colorBbox = blue!20,print=points]{meshInit.txt}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } + \multido{\ii=5+1}{4}{% + \newpage\meshAddPointBWinc[mode=ext,step=badtriangles,colorNew + =green!20!red,colorBack=red!10,colorCircle = blue,bbox = + show,colorBbox = blue!20]{mesh.txt}{\ii}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } \newpage + \meshAddPointBWinc[mode=ext,step=cavity,colorNew + =green!20!red,colorBack=red!10,colorCircle = blue,bbox = + show,colorBbox = blue!20]{mesh.txt}{\ii}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } \newpage + \meshAddPointBWinc[mode=ext,step=newtriangles,colorNew + =green!20!red,colorBack=red!10,colorCircle = blue,bbox = + show,colorBbox = blue!20]{mesh.txt}{\ii}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } + } + \newpage + \buildMeshBWinc[mode=ext,bbox = show,colorBbox = blue!20,print=points]{mesh.txt}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } + \newpage + \buildMeshBWinc[mode=ext,print=points]{mesh.txt}% + {% + beginfig(0); + \drawPath + }% + {% + \clipPath + endfig; + } +\end{document} +\end{latexcode} +produces a PDF with multiple pages. Using the \Verb+pdfcrop+ program, +we crop the pages to the material, and then we can animate the PDF +using the \Verb+animate+ package. + +%\begin{Exemple} +%\animategraphics[controls]{1}{animation-crop}{}{} +%\end{Exemple} + \input{dum.bbl} \end{document}