Last active
April 5, 2025 17:51
-
-
Save leingang/a3b2ab6761cc4b64a4eeb4c74382f24e to your computer and use it in GitHub Desktop.
Label TikZ spath3 components by their number
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass{standalone} | |
\usepackage{tikz} | |
\usetikzlibrary{intersections} | |
\usetikzlibrary{spath3} | |
\tikzset{ | |
every spath component/.style={draw,->,thick,green}, | |
every spath component label/.style={every spath component,draw=none,fill=white, fill opacity=1, circle,text opacity=1, | |
node contents={\spathname\spathcomponentnumber} | |
}, | |
spath/label components/.code={ | |
\tikzset{ | |
spath/get components of={#1}\cpts} | |
\def\spathname{#1} | |
\foreach[count=\spathcomponentnumber] \cpt in \cpts { | |
\node[at={(spath cs:{\cpt} .5)}, | |
every spath component label]; | |
} | |
}, | |
spath/render components with labels/.style={ | |
render components={#1}, | |
label components={#1} | |
} | |
} | |
\begin{document} | |
\begin{tikzpicture} | |
\draw[spath/save=A] circle(2cm); | |
\draw[spath/save=B] ellipse(3cm and 1cm); | |
\tikzset{ | |
spath/.cd, | |
split at intersections={A}{B}, | |
label components=A, | |
/tikz/every spath component/.append style={red}, | |
render components with labels=B, | |
} | |
\end{tikzpicture} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment