Shade a region in a knot diagram

I have no idea how to fill exactly this area, but you can cheat like this :

\documentclass[tikz,border=7pt]{standalone}
\usetikzlibrary{hobby,knots,shapes}

\begin{document}

  \begin{tikzpicture}[use Hobby shortcut]

    \begin{knot}[
        consider self intersections=true,
        ignore endpoint intersections = false,
        flip crossing/.list={1,7,6,11,10, 13, 15, 2}
      ]
      \strand[very thick] ([closed]90:2) foreach \k in {1,...,7}
        { .. (90-360/7+\k*1080/7:1) .. (90+\k*1080/7:2) } (90:2);
    \end{knot}

    \node[regular polygon,regular polygon sides=7,fill,fill opacity=.21, inner sep=6.8mm, rotate=7] {};
  \end{tikzpicture}
\end{document}

enter image description here


Here's a method using blend modes (the PGF manual warns that these might not be supported by all renderers/printers). The thinking behind it is that the white-out part of the knot should blank out other strands of the knot but not anything else. So everything ends up in a blend group and we choose the blend modes appropriately.

To get the actual region, we fill the knot path using the even odd rule and clip against a circle of just the right size (magic numbers courtesy of www.i-just-made-them-up.com). This gets us the correct region (for a more generic shape, one might have to be a bit creative for this part). Drawing the knot over the top sort of works, but has the issue of the white-out showing and hence the use of blend modes.

\documentclass{article}
%\url{https://tex.stackexchange.com/q/410096/86}
\usepackage{tikz}
\usetikzlibrary{hobby,knots}

\begin{document}

\begin{tikzpicture}[use Hobby shortcut]

\begin{scope}[blend group=darken]

\begin{scope}[blend group=normal,even odd rule]
\clip (0,0) circle[radius=1.07];
\fill[black!30!white, save Hobby path={knot}] ([closed]90:2) foreach \k in {1,...,7} 
   { .. (90-360/7+\k*1080/7:1) .. (90+\k*1080/7:2) } (90:2);
\end{scope}

\begin{scope}[blend group=normal]
\begin{knot}[
  consider self intersections=true,
  ignore endpoint intersections = false,
  flip crossing/.list={1,7,6,11,10, 13, 15, 2}
]
   \strand[very thick] ([closed]90:2) foreach \k in {1,...,7} { .. (90-360/7+\k*1080/7:1) .. (90+\k*1080/7:2) } (90:2);
\end{knot}
\end{scope}

\end{scope}
\end{tikzpicture}
\end{document}

Result:

shaded knot

Detail of a single junction:

single junction