I found it a little tricky, indeed. It is hard to fill or clip with the given paths, since they are not closed, and modifying them to pass through the node centers and form a closed path changes the curves. Joining the to
paths with --
, as in:
\clip (b5) to [bend right=20] (b3) -- (b3) to[bend left=30] (b4) -- (b4) to[bend left=30] (b5);
didn't work either, for reasons I don't understand. It looks like this:
You can get closed paths out of these by connecting the curves you have with line segments between the points where the curves land on the boundary of the nodes. Getting the coordinates of these is as simple as putting coordinate
operations on the paths!
\documentclass{scrartcl}
\usepackage{bera}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage{makecell}
\tikzset
{
shadeball/.style={circle,shading=ball, minimum size=6mm},
utedge/.style={->,ultra thick},
}
\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle (14,3);
\node at (1.8,2.3) {\Huge\textbf{\textsf{my\LaTeX}}};
\node at (10.6,0.8) {\LARGE\makecell[r]{line1 line1 line1 line1 li\\line2 line2 line2 line}};
\node[shadeball, ball color=LawnGreen] (b1) at (5.7,0.85) {};
\node[shadeball, ball color=Fuchsia] (b2) at (10.7,2.15) {};
\node[shadeball, ball color=Cyan] (b3) at (4.7,2.25) {};
\node[shadeball, ball color=Gold] (b4) at (2.1,0.55) {};
\node[shadeball, ball color=Tomato] (b5) at (0.7,1.65) {};
\node[shadeball, ball color=Chocolate] (b6) at (7.7,0.45) {};
\draw[utedge] (b2) to [bend right=20] coordinate[at start] (b21) (b1) coordinate (b12);
\draw[utedge] (b3) to [bend left=30] coordinate[at start] (b31) (b1) coordinate (b13);
\draw[utedge] (b4) to [bend right=10] coordinate[at start] (b41) (b1) coordinate (b14);
\draw[utedge] (b4) to [bend right=30] coordinate[at start] (b43) (b3) coordinate (b34);
\draw[utedge] (b3) to [bend left=20] coordinate[at start] (b32) (b2) coordinate (b23);
\draw[utedge] (b5) to [bend right=30] coordinate[at start] (b54) (b4) coordinate (b45);
\draw[utedge] (b5) to [bend right=20] coordinate[at start] (b53) (b3) coordinate (b35);
\draw[utedge] (b1) to [bend right=30] coordinate[at start] (b16) (b6) coordinate (b61);
\begin{scope}[on background layer]
\fill[orange!60] (b54) to [bend right=30] (b45) --
(b43) to [bend right=30] (b34) --
(b35) to [bend left=20] (b53) -- cycle;
\fill[purple!60] (b43) to [bend right=30] (b34) --
(b31) to [bend left=30] (b13) --
(b14) to [bend left=10] (b41) -- cycle;
\fill[green!60] (b32) to [bend left=20] (b23) --
(b21) to [bend right=20] (b12) --
(b13) to [bend right=30] (b31) -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}
Notice that I used the backgrounds
TikZ library.
This is sufficiently better than my previous method that I erased it. See the edit history for a method that overlaps clipping regions for each curve.
\makeatletter\expandafter\def\csname LaTeX \endcsname{L\kern -.36em{\sbox \z@ T\vbox to\ht \z@ {\kern-0.2ex\hbox {\check@mathfonts \fontsize \sf@size \z@ \math@fontsfalse \selectfont A}\vss }}\kern -.15em\TeX}\makeatother