Stopping a line at a certain point in tikz

You can just use dash pattern. It is true that you need to adjust the on and off dimensions by hand, but this code does not overdraw anything.

\documentclass[tikz,border=3mm]{standalone}
% Commands:
\newcommand{\yggDra}[3]{
\draw[ultra thick, xscale=#1, yscale=#2, rotate=#3,
dash pattern=on 13pt off 5pt on 51pt off 5pt on 66pt off 6pt on 76pt off 6pt on 35pt] ({cos(-44.8)*3.92},{sin(-44.8)*3.92})
.. controls ({cos(-55)*4},{sin(-55)*4}) and ({cos(-75)*2.5},{sin(-75)*2.5}) .. ({cos(-89)*3.9},{sin(-89)*3.9})
.. controls ({cos(-75)*4.2},{sin(-75)*4.2}) and ({cos(-60)*3.1},{sin(-60)*3.1}) .. ({cos(-44)*3.2},{sin(-44)*3.4})
.. controls ({cos(-55)*4.5},{sin(-55)*4.5}) and ({cos(-75)*3.7},{sin(-75)*3.7}) .. ({cos(-87)*3.3},{sin(-87)*3.3}) .. controls ({cos(-90)*3.26},{sin(-90)*3.26}) .. ({cos(-93)*3.3},{sin(-93)*3.3});
}
\begin{document}

\begin{tikzpicture}

\yggDra{1}{1}{0}
\yggDra{-1}{1}{0}
\yggDra{1}{-1}{0}
\yggDra{-1}{-1}{0}
\yggDra{1}{-1}{90}
\yggDra{-1}{-1}{-90}
\yggDra{1}{-1}{-90}
\yggDra{-1}{-1}{90}
\end{tikzpicture}

\end{document}

enter image description here


New answer

As Paul Gaborit points out, it is necessary to flip some passages. This is done either with the flip crossing/.list={} key, or with the \flipcrossings{} macro, which amounts to the same thing. It takes a trained eye to notice!

Indeed, your original basic drawing is this one:

original

The drawing obtained without returning some passages is :

witout flip crossing

When you switch to draft mode=crossings, you find the numbers to return and you find those listed by Paul Gaborit: \flipcrossings{2,3,38,39,50,51,20,21,33,34,54,55,66,67,15,16}

draft mode

The final result is the same as the one you wanted to obtain at the beginning.

final result

\documentclass[border=5mm]{standalone}

% Usepackage:
\usepackage{pgfplots}
\usetikzlibrary{calc,knots}
%\usepackage{allrunes}

% Commands:
\newcommand{\yggDra}[3]{
\strand[ultra thick, xscale=#1, yscale=#2, rotate=#3] 
({cos(-44.8)*3.92},{sin(-44.8)*3.92})
.. controls ({cos(-55)*4},{sin(-55)*4}) and ({cos(-75)*2.5},{sin(-75)*2.5}) .. ({cos(-89)*3.9},{sin(-89)*3.9})
.. controls ({cos(-75)*4.2},{sin(-75)*4.2}) and ({cos(-60)*3.1},{sin(-60)*3.1}) .. ({cos(-44)*3.2},{sin(-44)*3.4})
.. controls ({cos(-55)*4.5},{sin(-55)*4.5}) and ({cos(-75)*3.7},{sin(-75)*3.7}) .. ({cos(-87)*3.3},{sin(-87)*3.3}) .. controls ({cos(-90)*3.26},{sin(-90)*3.26}) .. ({cos(-93)*3.3},{sin(-93)*3.3});
}

%\newcommand{\whiteSpace}[1]{
%\draw[white, ultra thick, rotate=#1]
%(0.4,-3.308) -- (0.6,-3.35)
%(0.3,-3.395) -- (0.5,-3.45)
%(1.11,-3.41) -- (0.99,-3.52)
%(1.29,-3.41) -- (1.155,-3.52)
%(2.24,-2.9) -- (2.2,-3.0)
%(2.358,-2.89) -- (2.32,-3.0)
%(1.55,-2.91) -- (1.75,-2.9)
%(1.45,-3.025) -- (1.75,-3.0127)
%;
%\draw[white, ultra thick, rotate=#1, xscale=-1]
%(0.4,-3.308) -- (0.6,-3.35)
%(0.3,-3.395) -- (0.5,-3.45)
%(1.11,-3.41) -- (0.99,-3.52)
%(1.29,-3.41) -- (1.155,-3.52)
%(2.24,-2.9) -- (2.2,-3.0)
%(2.358,-2.89) -- (2.32,-3.0)
%(1.55,-2.91) -- (1.75,-2.9)
%(1.45,-3.025) -- (1.75,-3.0127)
%;
%}

\begin{document}

\begin{tikzpicture}
 \begin{knot}[consider self intersections,end tolerance=.4pt,
 flip crossing/.list={2,3,38,39,50,51,20,21,33,34,54,55,66,67,15,16},
 % draft mode=crossings
  ]
 %\flipcrossings{2,3,38,39,50,51,20,21,33,34,54,55,66,67,15,16}
\yggDra{1}{1}{0}
\yggDra{-1}{1}{0}
\yggDra{1}{-1}{0}
\yggDra{-1}{-1}{0}
\yggDra{1}{-1}{90}
\yggDra{-1}{-1}{-90}
\yggDra{1}{-1}{-90}
\yggDra{-1}{-1}{90}

%\whiteSpace{0}
%\whiteSpace{90}
%\whiteSpace{180}
%\whiteSpace{270}
\end{knot}
\end{tikzpicture}

\end{document}

Translated with www.DeepL.com/Translator (free version)

Oldanswer

The knots package included in spath3 written by @LoopSpace allows you to do what you want automatically. Here is the adaptation of your code with this package. screenshot

\documentclass[border=5mm]{standalone}

% Usepackage:
\usepackage{pgfplots}
\usetikzlibrary{calc,knots}
%\usepackage{allrunes}

% Commands:
\newcommand{\yggDra}[3]{
\strand[ultra thick, xscale=#1, yscale=#2, rotate=#3] 
({cos(-44.8)*3.92},{sin(-44.8)*3.92})
.. controls ({cos(-55)*4},{sin(-55)*4}) and ({cos(-75)*2.5},{sin(-75)*2.5}) .. ({cos(-89)*3.9},{sin(-89)*3.9})
.. controls ({cos(-75)*4.2},{sin(-75)*4.2}) and ({cos(-60)*3.1},{sin(-60)*3.1}) .. ({cos(-44)*3.2},{sin(-44)*3.4})
.. controls ({cos(-55)*4.5},{sin(-55)*4.5}) and ({cos(-75)*3.7},{sin(-75)*3.7}) .. ({cos(-87)*3.3},{sin(-87)*3.3}) .. controls ({cos(-90)*3.26},{sin(-90)*3.26}) .. ({cos(-93)*3.3},{sin(-93)*3.3});
}

%\newcommand{\whiteSpace}[1]{
%\draw[white, ultra thick, rotate=#1]
%(0.4,-3.308) -- (0.6,-3.35)
%(0.3,-3.395) -- (0.5,-3.45)
%(1.11,-3.41) -- (0.99,-3.52)
%(1.29,-3.41) -- (1.155,-3.52)
%(2.24,-2.9) -- (2.2,-3.0)
%(2.358,-2.89) -- (2.32,-3.0)
%(1.55,-2.91) -- (1.75,-2.9)
%(1.45,-3.025) -- (1.75,-3.0127)
%;
%\draw[white, ultra thick, rotate=#1, xscale=-1]
%(0.4,-3.308) -- (0.6,-3.35)
%(0.3,-3.395) -- (0.5,-3.45)
%(1.11,-3.41) -- (0.99,-3.52)
%(1.29,-3.41) -- (1.155,-3.52)
%(2.24,-2.9) -- (2.2,-3.0)
%(2.358,-2.89) -- (2.32,-3.0)
%(1.55,-2.91) -- (1.75,-2.9)
%(1.45,-3.025) -- (1.75,-3.0127)
%;
%}

\begin{document}

\begin{tikzpicture}
 \begin{knot}[consider self intersections,end tolerance=.4pt,
  flip crossing/.list={2,3,38,39,50,51,20,21,33,34,54,55,66,67,15,16}
  %draft mode=crossings
  ]
%\flipcrossings{2,3,38,39,50,51,20,21,33,34,54,55,66,67,15,16}
\yggDra{1}{1}{0}
\yggDra{-1}{1}{0}
\yggDra{1}{-1}{0}
\yggDra{-1}{-1}{0}
\yggDra{1}{-1}{90}
\yggDra{-1}{-1}{-90}
\yggDra{1}{-1}{-90}
\yggDra{-1}{-1}{90}

%\whiteSpace{0}
%\whiteSpace{90}
%\whiteSpace{180}
%\whiteSpace{270}
\end{knot}
\end{tikzpicture}
\end{document}

Tags:

Line

Tikz Pgf