
Aquí hay un documento de ejemplo y el resultado que obtengo de él.
\documentclass[convert={size=480}]{standalone}
\usepackage{tikz}
\tikzset{ little circle/.style = { fill = black,
shape = circle,
minimum size = 1.5mm,
inner sep = 0mm,
outer sep = 0mm},
concentric circles/.style = {draw = gray!90, very thick}}
\begin{document}
\begin{tikzpicture}
\def\concentriccircles{\foreach \r in {1.5, ..., 19} {circle (\r mm)};}
\foreach \name/\x/\y in {A/8/30, B/16/-24, C/-30/8} {
\node [little circle] (\name) at (\x mm, \y mm) {};
}
\node [little circle] (P) at (barycentric cs:A=1,B=1,C=1) {};
\foreach \name/\origin/\destination in {H/A/B, J/B/C, K/C/A} {
\path (\origin) -- (\destination) coordinate [midway] (\name);
\path (P) -- (\name) node [pos = 1.6, little circle] (\name 2) {};
}
\draw [concentric circles] (P) \concentriccircles;
\foreach \x/\y/\v/\c in {A/B/H/green, B/C/J/red, C/A/K/blue} {
\begin{scope}
\clip (\x) .. controls (P) .. (\y) -- (\v 2) -- (\x); % (*)
\draw [concentric circles, draw = \c] (P) \concentriccircles;
\end{scope}
}
\begin{scope}[very thick]
\foreach \x/\y/\c in {A/B/red, B/C/blue, C/A/green} {
\draw [\c] (\x) .. controls (P) .. (\y);
}
\end{scope}
\begin{scope}[very thick, red]
\path [use as bounding box];
\clip (A) circle [radius = 25mm];
\draw (A) .. controls (P) .. (B);
\end{scope}
\end{tikzpicture}
\end{document}
No entiendo por qué el área de recorte excluye el triángulo (A, B, H2)
( (B, C, J2)
y (C, A, K2)
). Puedes ver que sí porque los círculos concéntricos más allá de la línea entre A y B (B y C, C y A) todavía son grises.
Editar
Así es como se ve si agrega la draw
opción al \clip
comando en (*)
.
Respuesta1
Si construye una ruta con nodos, TikZ corta esta ruta en varios segmentos para evitar el contenido de nodos.
Para construir su trazado de recorte cerrado, use coordenadas en lugar de nodos... o use \x.center
,,, etc.\y.center
\v 2.center
\documentclass[convert={size=480}]{standalone}
\usepackage{tikz}
\tikzset{ little circle/.style = { fill = black,
shape = circle,
minimum size = 1.5mm,
inner sep = 0mm,
outer sep = 0mm},
concentric circles/.style = {draw = gray!90, very thick}}
\begin{document}
\begin{tikzpicture}
\def\concentriccircles{\foreach \r in {1.5, ..., 19} {circle (\r mm)};}
\foreach \name/\x/\y in {A/8/30, B/16/-24, C/-30/8} {
\node [little circle] (\name) at (\x mm, \y mm) {};
}
\node [little circle] (P) at (barycentric cs:A=1,B=1,C=1) {};
\foreach \name/\origin/\destination in {H/A/B, J/B/C, K/C/A} {
\path (\origin) -- (\destination) coordinate [midway] (\name);
\path (P) -- (\name) node [pos = 1.6, little circle] (\name 2) {};
}
\draw [concentric circles] (P) \concentriccircles;
\foreach \x/\y/\v/\c in {A/B/H/green, B/C/J/red, C/A/K/blue} {
\begin{scope}
\clip (\x.center) .. controls (P.center) .. (\y.center)
-- (\v 2.center) -- cycle; % (*)
\draw [concentric circles, draw = \c] (P) \concentriccircles;
\end{scope}
}
\begin{scope}[very thick]
\foreach \x/\y/\c in {A/B/red, B/C/blue, C/A/green} {
\draw [\c] (\x) .. controls (P) .. (\y);
}
\end{scope}
\begin{scope}[very thick, red]
\path [use as bounding box];
\clip (A) circle [radius = 25mm];
\draw (A) .. controls (P) .. (B);
\end{scope}
\end{tikzpicture}
\end{document}