# Drawing a ribbon graph

Given a graph like the one on the right side of the picture below, I want to draw a ribbon graph (that is, a "thickened" version of the graph) like the one on the left. I already drew the graph using Bézier curves but I don't think the best way to approach the ribbon graph would be using Bézier curves. How could I do it?

Below we have my drawing of the graph:

\begin{tikzpicture}
\useasboundingbox (-2,-2) rectangle (2,2.5);
\begin{scope}[very thick,decoration={
markings,
mark=at position 0.3 with {\arrow{>}}}
]
\draw[ultra thick,postaction={decorate}] (0,0) .. controls +(60:3) and +(120:3) .. (0,0);
\draw[ultra thick,postaction={decorate}] (0,0) .. controls +(-60:3) and +(-120:3) .. (0,0);
\end{scope}
\begin{scope}[very thick,decoration={
markings,
mark=at position 0.5 with {\arrow{>}}}
]
\draw[ultra thick,postaction={decorate}] (0,0) -- (-1,0) .. controls +(180:1) and +(180:2) .. (0,2.5)
.. controls +(0:2) and +(0:1) .. (1,0) -- (0,0);
\end{scope}
\fill[fill=black] (0,0) circle (3pt);
\end{tikzpicture} • Just draw the background as usual. – The old JouleV Apr 20 at 15:21
• @JouleV what do you mean? Using Bézier curves? – Gabriel Apr 20 at 15:24
• Yeah! Just draw some other Bezier curves, or whatever curves you want, and use some \fill commands for color filling. – The old JouleV Apr 20 at 15:26
• That's surely possible. However that seems insanely time consuming to me. I wonder if there is a better way to approach this. – Gabriel Apr 20 at 15:30

## 1 Answer

I do not know if it is time consuming to draw this. For me it would be probably more time-consuming to try to understand the abstract question behind this. If there is a clear, general question, please let me now, otherwise you may want to look at

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[insert arrow/.style={decoration={
markings,
mark=at position 0.3 with {\arrow{>}}}}]
\useasboundingbox (-2,-2) rectangle (2,2.5);
\draw[fill=gray!20] (0,1) + (-40:2) arc(-40:220:2) to[out=-50,in=45] (200:1)
arc(135:405:1.3) to[out=135,in=-140] cycle;
\begin{scope}[very thick,insert arrow=0.3]
\draw[ultra thick,postaction={decorate}] (0,0) .. controls +(60:3) and +(120:3) .. (0,0);
\draw[ultra thick,postaction={decorate}] (0,0) .. controls +(-60:3) and +(-120:3) .. (0,0);
\end{scope}
\begin{scope}[very thick,insert arrow=0.5]
\draw[ultra thick,postaction={decorate}] (0,0) -- (-1,0) .. controls +(180:1) and +(180:2) .. (0,2.5)
.. controls +(0:2) and +(0:1) .. (1,0) -- (0,0);
\end{scope}
\fill[fill=black] (0,0) circle (3pt);
\draw[fill=white] (0,1.2)+(-30:1.1) arc(-30:210:1.1) to[out=-60,in=-60,looseness=2] ++(0.1,0)
arc(210:-30:0.985) to[out=-120,in=-120,looseness=2] cycle;
\end{tikzpicture}
\end{document} 