Add walk-depth labelling/cut script and worked example
New experiments/medial_tire_cut_labelling.py: takes a full medial tire graph and an entry up tooth and runs the walk-depth labelling-and-cut procedure, reusing the full medial tire generator's model and emitting TikZ. Add a generator-produced 8-tooth example to the paper (Figure 1, Example 2.3) showing the labelling and the two cuts, plus a remark fixing the cut's closing tooth for descended faces. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -115,6 +115,152 @@ cuts as follows.
|
||||
\end{enumerate}
|
||||
\end{definition}
|
||||
|
||||
\begin{remark}[Closing tooth of a descended face]
|
||||
\label{rem:closing-tooth}
|
||||
For the entry face the traversal of step (2) closes by returning to the
|
||||
entry tooth, so the cut of step (3) duplicates the annular vertex shared
|
||||
by the last tooth and the entry tooth. For a face $F$ entered in step
|
||||
(5), the traversal instead closes upon reaching an already-labelled
|
||||
tooth: the other tooth of the bite through which $F$ was entered. In
|
||||
both cases the cut of step (3) duplicates the annular vertex shared by
|
||||
the last newly labelled tooth and this \emph{closing tooth}. Since both
|
||||
teeth of a bite are labelled while traversing its parent face, every
|
||||
descended face closes on such a tooth.
|
||||
\end{remark}
|
||||
|
||||
\begin{example}[A worked walk-depth labelling and cut]
|
||||
\label{ex:worked-cut}
|
||||
Figure~\ref{fig:worked-cut} shows a full medial tire graph with annular
|
||||
cycle of length $8$, generated by the full medial tire generator
|
||||
of~\cite{bauerfeld-medial-tire}. Its eight teeth are: three up teeth on
|
||||
the annular edges $5,6,7$ in the root face; one bite pairing the annular
|
||||
edges $0$ and $4$; and three singleton down teeth on the annular edges
|
||||
$1,2,3$ lying in that bite's inner-gap face.
|
||||
|
||||
Take the up tooth on edge $5$ as the entry tooth, with walk depth $0$.
|
||||
Its inner face is the root face, bounded by the teeth on edges
|
||||
$5,6,7,0,4$ in clockwise order. Step (2) labels them
|
||||
\[
|
||||
5\mapsto 0,\quad 6\mapsto 1,\quad 7\mapsto 2,\quad
|
||||
0\mapsto 3,\quad 4\mapsto 4,
|
||||
\]
|
||||
and step (3) cuts by duplicating the annular vertex $a_5$ shared by the
|
||||
last tooth (edge $4$) and the entry tooth (edge $5$). The highest-depth
|
||||
bite tooth is now the one on edge $4$ (walk depth $4$); it is incident to
|
||||
the still-unlabelled inner-gap face of the bite $(0,4)$. Entering that
|
||||
face from edge $4$ toward its unlabelled neighbour, step (5) labels the
|
||||
three down teeth
|
||||
\[
|
||||
3\mapsto 5,\quad 2\mapsto 6,\quad 1\mapsto 7,
|
||||
\]
|
||||
and closes on the already-labelled bite tooth of edge $0$, so step (3)
|
||||
cuts by duplicating the annular vertex $a_1$
|
||||
(Remark~\ref{rem:closing-tooth}). All eight teeth are now labelled, and
|
||||
the two cuts leave only the outer face and the eight teeth as
|
||||
$3$-faces. The labelling and cuts are produced by the script
|
||||
\texttt{experiments/medial\_tire\_cut\_labelling.py}.
|
||||
\end{example}
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\begin{tikzpicture}[scale=1.6,
|
||||
ann/.style={circle, fill=black, inner sep=1.0pt},
|
||||
upv/.style={circle, draw=blue!70!black, fill=blue!12, inner sep=1.4pt},
|
||||
downv/.style={circle, draw=red!70!black, fill=red!12, inner sep=1.4pt},
|
||||
bitev/.style={circle, draw=red!70!black, fill=red!32, inner sep=1.7pt},
|
||||
cyc/.style={black, line width=1.0pt},
|
||||
tth/.style={black!55, line width=0.4pt},
|
||||
lbl/.style={font=\scriptsize},
|
||||
dlbl/.style={font=\scriptsize\bfseries, text=black},
|
||||
cut/.style={red!80!black, line width=1.3pt},
|
||||
cutlbl/.style={font=\tiny, text=red!75!black}]
|
||||
\draw[cyc] (0.000,1.000)--(0.707,0.707)--(1.000,0.000)--(0.707,-0.707)--(0.000,-1.000)--(-0.707,-0.707)--(-1.000,-0.000)--(-0.707,0.707)--cycle;
|
||||
\draw[tth] (-1.349,-0.559)--(-0.707,-0.707) (-1.349,-0.559)--(-1.000,-0.000);
|
||||
\draw[tth] (-1.349,0.559)--(-1.000,-0.000) (-1.349,0.559)--(-0.707,0.707);
|
||||
\draw[tth] (-0.559,1.349)--(-0.707,0.707) (-0.559,1.349)--(0.000,1.000);
|
||||
\draw[tth] (0.554,0.230)--(0.707,0.707) (0.554,0.230)--(1.000,0.000);
|
||||
\draw[tth] (0.554,-0.230)--(1.000,0.000) (0.554,-0.230)--(0.707,-0.707);
|
||||
\draw[tth] (0.230,-0.554)--(0.707,-0.707) (0.230,-0.554)--(0.000,-1.000);
|
||||
\draw[tth] (0.000,-0.000)--(0.000,1.000) (0.000,-0.000)--(0.707,0.707);
|
||||
\draw[tth] (0.000,-0.000)--(0.000,-1.000) (0.000,-0.000)--(-0.707,-0.707);
|
||||
\node[ann] at (0.000,1.000) {};
|
||||
\node[ann] at (0.707,0.707) {};
|
||||
\node[ann] at (1.000,0.000) {};
|
||||
\node[ann] at (0.707,-0.707) {};
|
||||
\node[ann] at (0.000,-1.000) {};
|
||||
\node[ann] at (-0.707,-0.707) {};
|
||||
\node[ann] at (-1.000,-0.000) {};
|
||||
\node[ann] at (-0.707,0.707) {};
|
||||
\node[upv] at (-1.349,-0.559) {};
|
||||
\node[upv] at (-1.349,0.559) {};
|
||||
\node[upv] at (-0.559,1.349) {};
|
||||
\node[downv] at (0.554,0.230) {};
|
||||
\node[downv] at (0.554,-0.230) {};
|
||||
\node[downv] at (0.230,-0.554) {};
|
||||
\node[bitev] at (0.000,-0.000) {};
|
||||
\end{tikzpicture}
|
||||
\qquad
|
||||
\begin{tikzpicture}[scale=1.6,
|
||||
ann/.style={circle, fill=black, inner sep=1.0pt},
|
||||
upv/.style={circle, draw=blue!70!black, fill=blue!12, inner sep=1.4pt},
|
||||
downv/.style={circle, draw=red!70!black, fill=red!12, inner sep=1.4pt},
|
||||
bitev/.style={circle, draw=red!70!black, fill=red!32, inner sep=1.7pt},
|
||||
cyc/.style={black, line width=1.0pt},
|
||||
tth/.style={black!55, line width=0.4pt},
|
||||
lbl/.style={font=\scriptsize},
|
||||
dlbl/.style={font=\scriptsize\bfseries, text=black},
|
||||
cut/.style={red!80!black, line width=1.3pt},
|
||||
cutlbl/.style={font=\tiny, text=red!75!black}]
|
||||
\draw[cyc] (0.000,1.000)--(0.707,0.707)--(1.000,0.000)--(0.707,-0.707)--(0.000,-1.000)--(-0.707,-0.707)--(-1.000,-0.000)--(-0.707,0.707)--cycle;
|
||||
\draw[tth] (-1.349,-0.559)--(-0.707,-0.707) (-1.349,-0.559)--(-1.000,-0.000);
|
||||
\draw[tth] (-1.349,0.559)--(-1.000,-0.000) (-1.349,0.559)--(-0.707,0.707);
|
||||
\draw[tth] (-0.559,1.349)--(-0.707,0.707) (-0.559,1.349)--(0.000,1.000);
|
||||
\draw[tth] (0.554,0.230)--(0.707,0.707) (0.554,0.230)--(1.000,0.000);
|
||||
\draw[tth] (0.554,-0.230)--(1.000,0.000) (0.554,-0.230)--(0.707,-0.707);
|
||||
\draw[tth] (0.230,-0.554)--(0.707,-0.707) (0.230,-0.554)--(0.000,-1.000);
|
||||
\draw[tth] (0.000,-0.000)--(0.000,1.000) (0.000,-0.000)--(0.707,0.707);
|
||||
\draw[tth] (0.000,-0.000)--(0.000,-1.000) (0.000,-0.000)--(-0.707,-0.707);
|
||||
\node[ann] at (0.000,1.000) {};
|
||||
\node[ann] at (0.707,0.707) {};
|
||||
\node[ann] at (1.000,0.000) {};
|
||||
\node[ann] at (0.707,-0.707) {};
|
||||
\node[ann] at (0.000,-1.000) {};
|
||||
\node[ann] at (-0.707,-0.707) {};
|
||||
\node[ann] at (-1.000,-0.000) {};
|
||||
\node[ann] at (-0.707,0.707) {};
|
||||
\node[upv] at (-1.349,-0.559) {};
|
||||
\node[upv] at (-1.349,0.559) {};
|
||||
\node[upv] at (-0.559,1.349) {};
|
||||
\node[downv] at (0.554,0.230) {};
|
||||
\node[downv] at (0.554,-0.230) {};
|
||||
\node[downv] at (0.230,-0.554) {};
|
||||
\node[bitev] at (0.000,-0.000) {};
|
||||
\node[dlbl] at (0.177,0.427) {3};
|
||||
\node[dlbl] at (0.704,0.292) {7};
|
||||
\node[dlbl] at (0.704,-0.292) {6};
|
||||
\node[dlbl] at (0.292,-0.704) {5};
|
||||
\node[dlbl] at (-0.177,-0.427) {4};
|
||||
\node[dlbl] at (-1.101,-0.456) {0};
|
||||
\node[dlbl] at (-1.101,0.456) {1};
|
||||
\node[dlbl] at (-0.456,1.101) {2};
|
||||
\draw[cut] (-0.594,-0.594)--(-0.820,-0.820);
|
||||
\node[cutlbl] at (-0.919,-0.919) {cut 1};
|
||||
\draw[cut] (0.594,0.594)--(0.820,0.820);
|
||||
\node[cutlbl] at (0.919,0.919) {cut 2};
|
||||
\node[lbl, text=blue!60!black] at (-1.663,-0.689) {entry};
|
||||
\end{tikzpicture}
|
||||
\caption{A full medial tire graph (left) and its walk-depth labelling and
|
||||
cut (right), from Example~\ref{ex:worked-cut}. Black vertices are the
|
||||
annular medial vertices of the cycle $A(T)$; blue vertices are up-tooth
|
||||
apexes, red vertices are down-tooth apexes, and the larger red vertex is
|
||||
the shared apex of the bite on annular edges $0$ and $4$. On the right,
|
||||
each tooth carries its walk depth, and the two red slits mark the cuts:
|
||||
\emph{cut~1} duplicates $a_5$ as the root-face traversal closes, and
|
||||
\emph{cut~2} duplicates $a_1$ as the bite's inner-gap face closes. After
|
||||
the cuts the only bounded faces are the eight teeth.}
|
||||
\label{fig:worked-cut}
|
||||
\end{figure}
|
||||
|
||||
\begin{thebibliography}{9}
|
||||
|
||||
\bibitem{bauerfeld-medial-tire}
|
||||
|
||||
Reference in New Issue
Block a user