Zeichnen eines Hyperbelzweigs mit Asymptoten in Tikz

Zeichnen eines Hyperbelzweigs mit Asymptoten in Tikz

Ich versuche, mit Tikz einen einzelnen Hyperbelzweig zu zeichnen, und habe in diesem Forum hier in diesem Beitrag (@DouglasMencken) ein wunderbares Skript gefunden:dieser Beitrag

\documentclass[tikz, margin=10]{standalone}

\usepackage{bm}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric} % for shape=ellipse
\usetikzlibrary{calc}

\begin{document}

\def\tikzscale{0.8}
\begin{tikzpicture}[scale=\tikzscale]

\tikzset{
    elli/.style args={#1:#2and#3}{
        draw,
        shape=ellipse,
        rotate=#1,
        minimum width=2*#2,
        minimum height=2*#3,
        outer sep=0pt,
    }
}

%
% #1 optional parameters for \draw
% #2 angle of rotation in degrees
% #3 offset of center as (pointx, pointy) or (name-o-coordinate)
% #4 length of plus (semi)axis, that is axis which hyperbola crosses
% #5 length of minus (semi)axis
% #6 how much of hyperbola to draw in degrees, with 90 you’d reach infinity
%
\newcommand\tikzhyperbola[6][thick]{%
    \draw [#1, rotate around={#2: (0, 0)}, shift=#3]
        plot [variable = \t, samples=1000, domain=-#6:#6] ({#4 / cos( \t )}, {#5 * tan( \t )});

}

\def\angle{90}
\def\bigaxis{1.5cm}
\def\smallaxis{1.5cm}

\coordinate (center) at (0, 0);

\node [scale=\tikzscale, elli=\angle:\bigaxis and \smallaxis, line width = 1.2pt, color=black, dotted] at (center) (e) {};

\draw [-{stealth}, line width = 1.2pt, color = orange] ([shift={(\angle:-12)}] e.center) -- ([shift={(\angle:12)}] e.center) node [above right] {$\bm{a}_1$};
\draw [-{stealth}, line width = 1.2pt, color = orange] ([shift={(90+\angle:-8)}] e.center) -- ([shift={(90+\angle:8)}] e.center) node [above left]  {$\bm{a}_2$};

\tikzhyperbola[line width = 1.2pt, color=blue!80!black]{\angle}{(center)}{\bigaxis}{\smallaxis}{77}

\pgfmathsetmacro\axisratio{\smallaxis / \bigaxis}

% asymptotes
\def\lengthofasymptote{15}
\draw [color=black!40, line width = 0.4pt, rotate around={\angle + atan( \axisratio ): (center)}]
    ($ (-\lengthofasymptote, 0) + (center) $) -- ++(2*\lengthofasymptote, 0) ;
\draw [color=black!40, line width = 0.4pt, rotate around={\angle - atan( \axisratio ): (center)}]
    ($ (-\lengthofasymptote, 0) + (center) $) -- ++(2*\lengthofasymptote, 0) ;


\end{tikzpicture}

\end{document}

Wie Sie jedoch sehen können, möchte ich nur den oberen Teil des Graphen zeichnen, der nur einen Zweig darstellt: Ich verstehe nicht, wie ich das erreichen kann, da ich am Ende eine sehr große Achse habe (ich verstehe den Mechanismus zum Erstellen der Achsen a_1 und a_2 nicht). Wenn ich beispielsweise nur den oberen Teil der Asymptote haben möchte und die Länge der Asymptote = 0 als erste Koordinate einstelle, wird die gesamte Figur nach rechts verschoben.

Ich bin für jede Hilfe dankbar, die mir hilft, das Skript zu verstehen und das gewünschte Ergebnis zu erzielen, da es sehr elegant und sauber wirkt.

Danke schön.

Bildbeschreibung hier eingeben

verwandte Informationen